diff options
author | Federico Mena Quintero <federico@ximian.com> | 2001-10-25 01:27:22 +0800 |
---|---|---|
committer | Federico Mena Quintero <federico@src.gnome.org> | 2001-10-25 01:27:22 +0800 |
commit | c3876df777704e70f1d91689b4b29a69f8bf3e66 (patch) | |
tree | fe1e0265b9c69c3c5159a173177bf3102fb29d3b /calendar/gui/alarm-notify/alarm-queue.c | |
parent | 4d26929f07c5c34713671a36fb397dcc4522fcab (diff) | |
download | gsoc2013-evolution-c3876df777704e70f1d91689b4b29a69f8bf3e66.tar gsoc2013-evolution-c3876df777704e70f1d91689b4b29a69f8bf3e66.tar.gz gsoc2013-evolution-c3876df777704e70f1d91689b4b29a69f8bf3e66.tar.bz2 gsoc2013-evolution-c3876df777704e70f1d91689b4b29a69f8bf3e66.tar.lz gsoc2013-evolution-c3876df777704e70f1d91689b4b29a69f8bf3e66.tar.xz gsoc2013-evolution-c3876df777704e70f1d91689b4b29a69f8bf3e66.tar.zst gsoc2013-evolution-c3876df777704e70f1d91689b4b29a69f8bf3e66.zip |
Fixes bug #5282.
2001-10-24 Federico Mena Quintero <federico@ximian.com>
Fixes bug #5282.
* cal-util/timeutil.c (icaltimetype_to_tm_with_zone): New function
to avoid copying the same code all over the place.
(icaltimetype_to_tm): Also set the tm.tm_wday.
* gui/alarm-notify/alarm-queue.c (queue_midnight_refresh): Use
time_day_end_with_zone().
(load_alarms_for_today): Likewise. And oops, we were only
computing the times and not loading the alarms.
(obj_updated_cb): Likewise.
(load_alarms): Removed assertion that is no longer valid because
we may load the alarms for a client in two stages.
* gui/dialogs/alarm-page.c (get_alarm_string): Convert absolute
trigger times to the local timezone.
* gui/alarm-notify/alarm-notify-dialog.c (write_html_heading):
Convert the times to the local timezone.
(alarm_notify_dialog): Likewise, for the window title.
(alarm_notify_dialog): Set the window layer to WIN_LAYER_ONTOP.
* gui/e-cell-date-edit-text.c (ecd_get_text): Use
icaltimetype_to_tm_with_zone().
* gui/alarm-notify/save.c (get_config_db): Made public.
(discard_config_db): Made public.
* gui/alarm-notify/config-data.[ch]: New files with functions to
fetch the calendar configuration data used by the alarm daemon.
svn path=/trunk/; revision=13986
Diffstat (limited to 'calendar/gui/alarm-notify/alarm-queue.c')
-rw-r--r-- | calendar/gui/alarm-notify/alarm-queue.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/calendar/gui/alarm-notify/alarm-queue.c b/calendar/gui/alarm-notify/alarm-queue.c index 0a57e78ad7..533635289e 100644 --- a/calendar/gui/alarm-notify/alarm-queue.c +++ b/calendar/gui/alarm-notify/alarm-queue.c @@ -38,6 +38,7 @@ #include "alarm.h" #include "alarm-notify-dialog.h" #include "alarm-queue.h" +#include "config-data.h" #include "save.h" @@ -120,10 +121,13 @@ static void queue_midnight_refresh (void) { time_t midnight; + icaltimezone *zone; g_assert (midnight_refresh_id == NULL); - midnight = time_day_end (time (NULL)); + zone = config_data_get_timezone (); + + midnight = time_day_end_with_zone (time (NULL), zone); midnight_refresh_id = alarm_add (midnight, midnight_refresh_cb, NULL, NULL); if (!midnight_refresh_id) { @@ -347,11 +351,6 @@ load_alarms (ClientAlarms *ca, time_t start, time_t end) comp_alarms = cal_client_get_alarms_in_range (ca->client, start, end); - /* All of the last day's alarms should have already triggered and should - * have been removed, so we should have no pending components. - */ - g_assert (g_hash_table_size (ca->uid_alarms_hash) == 0); - for (l = comp_alarms; l; l = l->next) { CalComponentAlarms *alarms; @@ -367,9 +366,14 @@ static void load_alarms_for_today (ClientAlarms *ca) { time_t now, day_end; + icaltimezone *zone; now = time (NULL); - day_end = time_day_end (now); + + zone = config_data_get_timezone (); + + day_end = time_day_end_with_zone (now, zone); + load_alarms (ca, now, day_end); } /* Adds any alarms that should have occurred while the alarm daemon was not @@ -460,13 +464,17 @@ obj_updated_cb (CalClient *client, const char *uid, gpointer data) time_t now, day_end; CalComponentAlarms *alarms; gboolean found; + icaltimezone *zone; ca = data; remove_comp (ca, uid); now = time (NULL); - day_end = time_day_end (now); + + zone = config_data_get_timezone (); + + day_end = time_day_end_with_zone (now, zone); found = cal_client_get_alarms_for_object (ca->client, uid, now, day_end, &alarms); |