[gnome-calendar] quick-add-popover: set local timezone when editing the event
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] quick-add-popover: set local timezone when editing the event
- Date: Thu, 18 Feb 2016 03:05:24 +0000 (UTC)
commit 86c6e5da87336f9379455d08d9e555aa2a723aa1
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Thu Feb 18 04:03:09 2016 +0100
quick-add-popover: set local timezone when editing the event
If we add directly from the quick add popover, the event is
all day by default. If we're editing the event, it may or
may not be an all day event. In that case, if the user decides
to give it a time, we want it to be in the local timezone.
src/gcal-quick-add-popover.c | 36 ++++++++++++++++++++++++++----------
1 files changed, 26 insertions(+), 10 deletions(-)
---
diff --git a/src/gcal-quick-add-popover.c b/src/gcal-quick-add-popover.c
index 7f9aad2..744afc1 100644
--- a/src/gcal-quick-add-popover.c
+++ b/src/gcal-quick-add-popover.c
@@ -380,18 +380,18 @@ edit_or_create_event (GcalQuickAddPopover *self,
source = g_object_get_data (G_OBJECT (self->selected_row), "source");
/* Gather start date */
- date_start = g_date_time_new_local (g_date_time_get_year (self->date_start),
- g_date_time_get_month (self->date_start),
- g_date_time_get_day_of_month (self->date_start),
- 0, 0, 0);
+ date_start = g_date_time_new_utc (g_date_time_get_year (self->date_start),
+ g_date_time_get_month (self->date_start),
+ g_date_time_get_day_of_month (self->date_start),
+ 0, 0, 0);
/* Gather date end */
if (self->date_end)
{
- date_end = g_date_time_new_local (g_date_time_get_year (self->date_end),
- g_date_time_get_month (self->date_end),
- g_date_time_get_day_of_month (self->date_end),
- 0, 0, 0);
+ date_end = g_date_time_new_utc (g_date_time_get_year (self->date_end),
+ g_date_time_get_month (self->date_end),
+ g_date_time_get_day_of_month (self->date_end),
+ 0, 0, 0);
}
else
{
@@ -410,9 +410,25 @@ edit_or_create_event (GcalQuickAddPopover *self,
/* If we clicked edit button, send a signal; otherwise, create the event */
if (button == self->add_button)
- gcal_manager_create_event (self->manager, event);
+ {
+ gcal_manager_create_event (self->manager, event);
+ }
else
- g_signal_emit (self, signals[EDIT_EVENT], 0, event);
+ {
+ GTimeZone *local_tz = g_time_zone_new_local ();
+
+ /*
+ * When the user wants to edit the event, we want to make sure
+ * the event is in the user's timezone. It won't be a problem
+ * if the all day setting don't change, as we already handle this
+ * case at GcalEditDialog code.
+ */
+ gcal_event_set_timezone (event, local_tz);
+
+ g_signal_emit (self, signals[EDIT_EVENT], 0, event);
+
+ g_clear_pointer (&local_tz, g_time_zone_unref);
+ }
gtk_widget_hide (GTK_WIDGET (self));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]