[gnome-calendar] edit-dialog: handle timezone properly
- From: Erick Pérez Castellanos <erickpc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] edit-dialog: handle timezone properly
- Date: Mon, 16 Mar 2015 17:10:44 +0000 (UTC)
commit cac370e6b7f72ec20e585f558c2311171dfc75f3
Author: Erick Pérez Castellanos <erick red gmail com>
Date: Mon Mar 16 13:07:34 2015 -0400
edit-dialog: handle timezone properly
src/gcal-edit-dialog.c | 44 ++++++++++++++++++++++++++++++++++++++++----
1 files changed, 40 insertions(+), 4 deletions(-)
---
diff --git a/src/gcal-edit-dialog.c b/src/gcal-edit-dialog.c
index c1a4a67..e46cf97 100644
--- a/src/gcal-edit-dialog.c
+++ b/src/gcal-edit-dialog.c
@@ -290,7 +290,18 @@ update_date (GtkEntry *entry,
e_cal_component_get_dtend (priv->component, &dtend);
*(dtstart.value) = *start_date;
+ if (dtstart.tzid != NULL)
+ {
+ icaltimezone* zone = icaltimezone_get_builtin_timezone_from_tzid (dtstart.tzid);
+ *(dtstart.value) = icaltime_convert_to_zone (*start_date, zone);
+ }
+
*(dtend.value) = *end_date;
+ if (dtend.tzid != NULL)
+ {
+ icaltimezone* zone = icaltimezone_get_builtin_timezone_from_tzid (dtend.tzid);
+ *(dtend.value) = icaltime_convert_to_zone (*end_date, zone);
+ }
e_cal_component_set_dtstart (priv->component, &dtstart);
e_cal_component_set_dtend (priv->component, &dtend);
@@ -436,7 +447,18 @@ update_time (GtkEntry *entry,
e_cal_component_get_dtend (priv->component, &dtend);
*(dtstart.value) = *start_date;
+ if (dtstart.tzid != NULL)
+ {
+ icaltimezone* zone = icaltimezone_get_builtin_timezone_from_tzid (dtstart.tzid);
+ *(dtstart.value) = icaltime_convert_to_zone (*start_date, zone);
+ }
+
*(dtend.value) = *end_date;
+ if (dtend.tzid != NULL)
+ {
+ icaltimezone* zone = icaltimezone_get_builtin_timezone_from_tzid (dtend.tzid);
+ *(dtend.value) = icaltime_convert_to_zone (*end_date, zone);
+ }
e_cal_component_set_dtstart (priv->component, &dtstart);
e_cal_component_set_dtend (priv->component, &dtend);
@@ -847,8 +869,15 @@ gcal_edit_dialog_set_event_data (GcalEditDialog *dialog,
if (!all_day)
{
icaltimetype *date = gcal_dup_icaltime (dtstart.value);
- *date = icaltime_convert_to_zone (*(dtstart.value), e_cal_util_get_system_timezone ());
- gcal_time_selector_set_time (GCAL_TIME_SELECTOR (priv->start_time_selector), date->hour, date->minute);
+ if (dtstart.tzid != NULL)
+ {
+ dtstart.value->zone =
+ icaltimezone_get_builtin_timezone_from_tzid (dtstart.tzid);
+ }
+ *date = icaltime_convert_to_zone (*(dtstart.value),
+ e_cal_util_get_system_timezone ());
+ gcal_time_selector_set_time (GCAL_TIME_SELECTOR (priv->start_time_selector),
+ date->hour, date->minute);
g_free (date);
}
@@ -861,8 +890,15 @@ gcal_edit_dialog_set_event_data (GcalEditDialog *dialog,
if (!all_day)
{
icaltimetype *date = gcal_dup_icaltime (dtend.value);
- *date = icaltime_convert_to_zone (*(dtstart.value), e_cal_util_get_system_timezone ());
- gcal_time_selector_set_time (GCAL_TIME_SELECTOR (priv->end_time_selector), date->hour,
date->minute);
+ if (dtend.tzid != NULL)
+ {
+ dtend.value->zone =
+ icaltimezone_get_builtin_timezone_from_tzid (dtend.tzid);
+ }
+ *date = icaltime_convert_to_zone (*(dtend.value),
+ e_cal_util_get_system_timezone ());
+ gcal_time_selector_set_time (GCAL_TIME_SELECTOR (priv->end_time_selector),
+ date->hour, date->minute);
g_free (date);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]