Merge lp:~tintou/maya/maya-timezone into lp:~elementary-apps/maya/trunk

Proposed by Corentin Noël
Status: Merged
Approved by: Corentin Noël
Approved revision: 605
Merged at revision: 604
Proposed branch: lp:~tintou/maya/maya-timezone
Merge into: lp:~elementary-apps/maya/trunk
Diff against target: 151 lines (+26/-25)
2 files modified
core/Utils.vala (+24/-17)
src/EventEdition/InfoPanel.vala (+2/-8)
To merge this branch: bzr merge lp:~tintou/maya/maya-timezone
Reviewer Review Type Date Requested Status
Steffen Schuhmann (community) Approve
elementary Apps team Pending
Review via email: mp+227917@code.launchpad.net

Commit message

Fix the creation of events with the right TimeZone.

Description of the change

Fix the all-day creation of events and fixes the wrong TimeZone for Online Calendars.

To post a comment you must log in.
lp:~tintou/maya/maya-timezone updated
605. By Corentin Noël

Fixed other Utils functions to use TimeZone.

Revision history for this message
Steffen Schuhmann (sschuhmann) wrote :

Working with my Google Calendar

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'core/Utils.vala'
2--- core/Utils.vala 2014-07-05 13:23:05 +0000
3+++ core/Utils.vala 2014-07-23 14:21:25 +0000
4@@ -43,14 +43,23 @@
5 * Converts two datetimes to one TimeType. The first contains the date,
6 * its time settings are ignored. The second one contains the time itself.
7 */
8- public iCal.TimeType date_time_to_ical (DateTime date, DateTime time) {
9+ public iCal.TimeType date_time_to_ical (DateTime date, DateTime? time) {
10
11- iCal.TimeType result = iCal.TimeType.from_day_of_year
12+ var result = iCal.TimeType.from_day_of_year
13 (date.get_day_of_year (), date.get_year ());
14+ result.zone = iCal.TimeZone.get_builtin_timezone (E.Cal.util_get_system_timezone_location ());
15
16- result.hour = time.get_hour ();
17- result.minute = time.get_minute ();
18- result.second = time.get_second ();
19+ if (time != null) {
20+ result.is_date = 0;
21+ result.hour = time.get_hour ();
22+ result.minute = time.get_minute ();
23+ result.second = time.get_second ();
24+ } else {
25+ result.is_date = 1;
26+ result.hour = 0;
27+ result.minute = 0;
28+ result.second = 0;
29+ }
30
31 return result;
32 }
33@@ -68,7 +77,8 @@
34 }
35
36 public DateTime ecal_to_date_time (E.CalComponentDateTime date) {
37- DateTime result = new DateTime(new TimeZone.local(),
38+ TimeZone zone = new TimeZone (date.tzid);
39+ DateTime result = new DateTime(zone,
40 date.value.year, date.value.month, date.value.day,
41 date.value.hour, date.value.minute, date.value.second);
42
43@@ -107,16 +117,16 @@
44 var rrule = property.get_rrule ();
45 switch (rrule.freq) {
46 case (iCal.RecurrenceTypeFrequency.WEEKLY):
47- generate_week_reccurence (ref dateranges, view_range, rrule, start, end);
48+ generate_week_reccurence (dateranges, view_range, rrule, start, end);
49 break;
50 case (iCal.RecurrenceTypeFrequency.MONTHLY):
51- generate_month_reccurence (ref dateranges, view_range, rrule, start, end);
52+ generate_month_reccurence (dateranges, view_range, rrule, start, end);
53 break;
54 case (iCal.RecurrenceTypeFrequency.YEARLY):
55- generate_year_reccurence (ref dateranges, view_range, rrule, start, end);
56+ generate_year_reccurence (dateranges, view_range, rrule, start, end);
57 break;
58 default:
59- generate_day_reccurence (ref dateranges, view_range, rrule, start, end);
60+ generate_day_reccurence (dateranges, view_range, rrule, start, end);
61 break;
62 }
63 }
64@@ -124,7 +134,7 @@
65 return dateranges;
66 }
67
68- private void generate_day_reccurence (ref Gee.LinkedList<DateRange> dateranges, Util.DateRange view_range,
69+ private void generate_day_reccurence (Gee.LinkedList<DateRange> dateranges, Util.DateRange view_range,
70 iCal.RecurrenceType rrule, DateTime start, DateTime end) {
71 if (rrule.until.is_null_time () == 0) {
72 for (int i = 1; i <= (int)(rrule.until.day/rrule.interval); i++) {
73@@ -149,7 +159,7 @@
74 }
75 }
76
77- private void generate_year_reccurence (ref Gee.LinkedList<DateRange> dateranges, Util.DateRange view_range,
78+ private void generate_year_reccurence (Gee.LinkedList<DateRange> dateranges, Util.DateRange view_range,
79 iCal.RecurrenceType rrule, DateTime start, DateTime end) {
80 if (rrule.until.is_null_time () == 0) {
81 /*for (int i = 0; i <= rrule.until.year; i++) {
82@@ -186,7 +196,7 @@
83 }
84 }
85
86- private void generate_month_reccurence (ref Gee.LinkedList<DateRange> dateranges, Util.DateRange view_range,
87+ private void generate_month_reccurence (Gee.LinkedList<DateRange> dateranges, Util.DateRange view_range,
88 iCal.RecurrenceType rrule, DateTime start, DateTime end) {
89 for (int k = 0; k <= iCal.Size.BY_DAY; k++) {
90 if (rrule.by_day[k] < iCal.Size.BY_DAY) {
91@@ -214,7 +224,6 @@
92 }
93
94 int interval = start_ical_day.get_day_of_month () - start.get_day_of_month ();
95- warning ("%d", start_ical_day.get_day_of_month ());
96 dateranges.add (new Util.DateRange (start_ical_day, strip_time(end).add_months (n).add_days (interval)));
97 i++;
98 n = i*rrule.interval;
99@@ -256,7 +265,7 @@
100 }
101 }
102
103- private void generate_week_reccurence (ref Gee.LinkedList<DateRange> dateranges, Util.DateRange view_range,
104+ private void generate_week_reccurence (Gee.LinkedList<DateRange> dateranges, Util.DateRange view_range,
105 iCal.RecurrenceType rrule, DateTime start_, DateTime end_) {
106 DateTime start = start_;
107 DateTime end = end_;
108@@ -678,7 +687,6 @@
109 }
110
111 public Gtk.Widget set_margins (Gtk.Widget widget, int top, int right, int bottom, int left) {
112-
113 widget.margin_top = top;
114 widget.margin_right = right;
115 widget.margin_bottom = bottom;
116@@ -688,7 +696,6 @@
117 }
118
119 public Gtk.Alignment set_paddings (Gtk.Widget widget, int top, int right, int bottom, int left) {
120-
121 var alignment = new Gtk.Alignment (0.0f, 0.0f, 1.0f, 1.0f);
122 alignment.top_padding = top;
123 alignment.right_padding = right;
124
125=== modified file 'src/EventEdition/InfoPanel.vala'
126--- src/EventEdition/InfoPanel.vala 2014-07-06 14:43:57 +0000
127+++ src/EventEdition/InfoPanel.vala 2014-07-23 14:21:25 +0000
128@@ -156,11 +156,8 @@
129
130 // Save the time
131 if (allday_switch.get_active () == true) {
132- iCal.TimeType dt_start = Util.date_time_to_ical (from_date_picker.date, new DateTime.local (2000, 12, 12, 0, 0, 0));
133- iCal.TimeType dt_end = Util.date_time_to_ical (to_date_picker.date.add_days (1), new DateTime.local (2000, 12, 12, 0, 0, 0));
134-
135- dt_start.is_date = 0;
136- dt_end.is_date = 0;
137+ iCal.TimeType dt_start = Util.date_time_to_ical (from_date_picker.date, null);
138+ iCal.TimeType dt_end = Util.date_time_to_ical (to_date_picker.date.add_days (1), null);
139
140 comp.set_dtstart (dt_start);
141 comp.set_dtend (dt_end);
142@@ -168,9 +165,6 @@
143 iCal.TimeType dt_start = Util.date_time_to_ical (from_date_picker.date, from_time_picker.time);
144 iCal.TimeType dt_end = Util.date_time_to_ical (to_date_picker.date, to_time_picker.time);
145
146- dt_start.is_date = 0;
147- dt_end.is_date = 0;
148-
149 comp.set_dtstart (dt_start);
150 comp.set_dtend (dt_end);
151 }

Subscribers

People subscribed via source and target branches