Commit Graph
19 Commits
Author SHA1 Message Date
Sebastian Keller af7a17ef01 event: Fix multiday detection for all-day events
All-day events always use UTC, so when the multiday detection code was
converting them to the local timezone, they span an additional day if
the local timezone is not the same as UTC. This was leading to all-day
events always being considered multiday events.

Fix this by ignoring the timezone for all-day events, like all other
comparisons do. Also don't consider all-day events spanning 1 day to be
multiday since as per RFC 5545 the end date is non-inclusive and if
omitted to be start + 1 day.
2021-05-11 19:35:31 +00:00
Georges Basile Stavracas Neto d1a0dbd8f5 event: Switch to g_time_zone_new_identifier()
And add the relevant NULL checks here.
2021-02-26 19:26:49 -03:00
Georges Basile Stavracas Neto 158c65db4b event: Trivial cleanup
We can avoid a lookup by simply checking if the alarm id
isn't NULL.
2020-06-17 21:24:36 -03:00
Georges Basile Stavracas Neto c1ec9e734b event: Commit component more often
GcalEvent was mising many points where committing the component
is required. Commit the component more often.

https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/620
2020-06-17 21:24:36 -03:00
Georges Basile Stavracas Neto dbd81f401c event: Add API to clone events
This will be useful for updating events without having
to keep track of the event states.

Add the new API, and also a unit test.
2020-06-15 13:07:48 -03:00
Georges Basile Stavracas Neto 98e6ac28e7 event: Remove unused method
Comparing ranges is so easy now that we don't need this
helper anymore.
2020-04-14 19:08:06 +00:00
Georges Basile Stavracas Neto f3c3bbf5ab event: Use GcalRange in public API 2020-04-14 19:08:06 +00:00
Georges Basile Stavracas Neto 12fd607d56 utils: Make date comparison follow time comparison semantics
Right now, comparing dates with gcal_date_time_compare_date() gives
the exact opposite result of when comparing using g_date_time_compare().

As shown by this patch, this was a source of *many* bugs.
2020-04-14 19:08:06 +00:00
Georges Basile Stavracas Neto 0935a67558 event: Add helper API to return a GcalRange 2020-04-14 19:08:05 +00:00
Georges Basile Stavracas Neto d9733aee27 event: Simplify some code 2020-04-14 19:08:05 +00:00
Georges Basile Stavracas Neto 3692a0ccf6 Introduce the new calendar monitoring API
It is, as expected, heavily inspired by the ECalDataModel code,
except it uses GDateTime, is timezone aware, and can handle all
day events correctly.
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto 94413c26b1 event: Remove event cache
It's for the best. The cache was being more
problematic than it was worth it.
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto f182813e49 event: Protect event cache with a lock
We'll be creating events from multiple threads soon,
so make sure the event cache is protected enough.
2020-04-01 21:06:50 -03:00
Georges Basile Stavracas Neto 87c1ffb9d5 Reimplement alarm support
This is a complete reimplementation of alarms in Calendar.

Rejoice.
2019-12-02 16:41:56 -03:00
Michael Catanzaro 8e6a3b9f3f Fix crashes when e_cal_util_get_system_timezone() returns NULL
The return value is nullable, but gnome-calendar fails to check it.

Because the nullable return value is inconvenient for us, we can instead
add and use gcal_context_get_icaltimezone() to supplement the existing
gcal_context_get_timezone().

We'll also need a function to convert from GTimeZone to ICalTimezone,
gcal_timezone_to_icaltimezone().

Fixes #419
2019-09-19 16:01:44 -05:00
Michael Catanzaro 748b7207e7 Don't leave dangling pointers in the GcalEvent cache
The cache has an unowned pointer to the GcalEvent's UID. We need to
update the cache with the GcalEvent's new UID to avoid use-after-free.

Fixes #434
2019-08-25 17:39:01 +03:00
Milan Crha a0cae4356a Port to libecal-2.0
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/merge_requests/70
2019-05-17 21:58:55 +02:00
Georges Basile Stavracas Neto 245df513d7 event: Simplify color handling
We can use GcalCalendar::color property directly now.
2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto 1a5ff545a2 project: Move a few classes to core/ 2019-05-04 12:05:39 -03:00