aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/alarm-notify/alarm-queue.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@ximian.com>2001-10-25 01:27:22 +0800
committerFederico Mena Quintero <federico@src.gnome.org>2001-10-25 01:27:22 +0800
commitc3876df777704e70f1d91689b4b29a69f8bf3e66 (patch)
treefe1e0265b9c69c3c5159a173177bf3102fb29d3b /calendar/gui/alarm-notify/alarm-queue.c
parent4d26929f07c5c34713671a36fb397dcc4522fcab (diff)
downloadgsoc2013-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.c24
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);