Commit Graph
34 Commits
Author SHA1 Message Date
Yash Singh 2c75e72582 event: add recurrence property
Earlier, an event had no recurrence property. Hence, the event's
recurrence pattern etc. could not be analysed, and as a result
could not be changed by the user. gnome-calendar just displayed
all the recurrences of a recurring event but had no 'readable'
knowledge regarding the characteristics of those recurrences.

This patch adds the recurrence property, which is basically
a GcalRecurrence structure linked to the event.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-07-13 13:32:52 -03:00
Mohammed Sadiq 00b89b89cd gcal-event: fix several memory leaks
https://bugzilla.gnome.org/show_bug.cgi?id=782972
2017-05-24 15:08:31 -03:00
Yash Singh 6dd234296e event: add recurrence property & has-recurrence function
Recurrence property of the event enables us to add recurrences
to it in the future. It is the first step in that direction.

https://bugzilla.gnome.org/show_bug.cgi?id=782755
2017-05-18 14:50:14 -03:00
Georges Basile Stavracas Neto 4e262f6d5d event: remove unused code 2017-05-17 14:47:03 -03:00
Mohammed Sadiq 3be142a207 event: don't leak event description
https://bugzilla.gnome.org/show_bug.cgi?id=781400
2017-04-17 21:12:50 -03:00
Georges Basile Stavracas Neto 7681b7a2da project: document classes 2017-04-12 15:17:17 -03:00
Georges Basile Stavracas Neto e3ef063e00 event: fix documentation 2017-04-08 20:59:51 -03:00
Georges Basile Stavracas Neto d5825bbd35 project: override log domains
This way, we can have more useful debug spils.
2017-03-17 10:14:25 -03:00
Georges Basile Stavracas Neto 23cc46a01a event: fix comparison if event is today
Since the end times are open-ended, we have to consider the very second
before the actual end time.

https://bugzilla.gnome.org/show_bug.cgi?id=772104
2016-10-01 20:43:37 -03:00
Victor Toso 03d1e549f2 event: Fix leak of GdkRGBA
23,776 bytes in 743 blocks are definitely lost in loss record 19,053 of 19,159
   at 0x4C2DB9D: malloc (vg_replace_malloc.c:299)
   by 0x9A0C90E: g_malloc (gmem.c:94)
   by 0x9A26A55: g_slice_alloc (gslice.c:1025)
   by 0x9A26AD7: g_slice_copy (gslice.c:1076)
   by 0x6A97912: gdk_rgba_copy (gdkrgba.c:76)
   by 0x42B35E: gcal_event_set_color (gcal-event.c:750)
   by 0x42BF3E: gcal_event_set_source (gcal-event.c:1204)
   by 0x42AE20: gcal_event_set_property (gcal-event.c:481)
   by 0x956B39B: object_set_property (gobject.c:1423)
   by 0x956BFDF: g_object_new_internal (gobject.c:1817)
   by 0x956CB24: g_object_new_valist (gobject.c:2042)
   by 0x878945D: g_initable_new_valist (ginitable.c:224)

https://bugzilla.gnome.org/show_bug.cgi?id=772272
2016-10-01 19:20:01 -03:00
Victor Toso ea70173cd3 event: Fix leak of uid (string)
28,337 bytes in 415 blocks are definitely lost in loss record 18,432 of 18,507
   at 0x4C2FC47: realloc (vg_replace_malloc.c:785)
   by 0xA88021D: vasprintf (in /usr/lib64/libc-2.24.so)
   by 0x9A593FC: g_vasprintf (gprintf.c:316)
   by 0x9A292F7: g_strdup_vprintf (gstrfuncs.c:514)
   by 0x9A2939C: g_strdup_printf (gstrfuncs.c:540)
   by 0x42A10B: gcal_event_update_uid_internal (gcal-event.c:192)
   by 0x42BF52: gcal_event_set_source (gcal-event.c:1217)
   by 0x42ADCA: gcal_event_set_property (gcal-event.c:480)
   by 0x956B39B: object_set_property (gobject.c:1423)
   by 0x956BFDF: g_object_new_internal (gobject.c:1817)
   by 0x956CB24: g_object_new_valist (gobject.c:2042)
   by 0x878945D: g_initable_new_valist (ginitable.c:224)

https://bugzilla.gnome.org/show_bug.cgi?id=772272
2016-10-01 19:20:01 -03:00
Victor Toso 86d91b7598 event: Fix leak of EcalComponentId
29,717 (8,128 direct, 21,589 indirect) bytes in 508 blocks are definitely lost in loss record 18,380 of 18,445
   at 0x4C2FA50: calloc (vg_replace_malloc.c:711)
   by 0x9A0C981: g_malloc0 (gmem.c:124)
   by 0x9A0CC64: g_malloc0_n (gmem.c:355)
   by 0x5BE3948: e_cal_component_get_id (e-cal-component.c:1477)
   by 0x42A06D: gcal_event_update_uid_internal (gcal-event.c:178)
   by 0x42A64D: gcal_event_set_component_internal (gcal-event.c:310)
   by 0x42AD0F: gcal_event_set_property (gcal-event.c:459)
   by 0x956B39B: object_set_property (gobject.c:1423)
   by 0x956BFDF: g_object_new_internal (gobject.c:1817)
   by 0x956CB24: g_object_new_valist (gobject.c:2042)
   by 0x878945D: g_initable_new_valist (ginitable.c:224)
   by 0x878933A: g_initable_new (ginitable.c:146)

https://bugzilla.gnome.org/show_bug.cgi?id=772272
2016-10-01 19:20:01 -03:00
Victor Toso aee120b898 event: Fix leak of alarm (GHashTable)
105,858 (42,064 direct, 63,794 indirect) bytes in 478 blocks are definitely lost in loss record 19,065 of 19,103
   at 0x4C2DB9D: malloc (vg_replace_malloc.c:299)
   by 0x9A0C90E: g_malloc (gmem.c:94)
   by 0x9A26A55: g_slice_alloc (gslice.c:1025)
   by 0x99F0510: g_hash_table_new_full (ghash.c:711)
   by 0x42B10C: gcal_event_init (gcal-event.c:657)
   by 0x9584B32: g_type_create_instance (gtype.c:1866)
   by 0x956BED0: g_object_new_internal (gobject.c:1783)
   by 0x956CB24: g_object_new_valist (gobject.c:2042)
   by 0x878945D: g_initable_new_valist (ginitable.c:224)
   by 0x878933A: g_initable_new (ginitable.c:146)
   by 0x42B181: gcal_event_new (gcal-event.c:690)
   by 0x4549CA: gcal_year_view_component_added (gcal-year-view.c:1632)

https://bugzilla.gnome.org/show_bug.cgi?id=772272
2016-10-01 19:20:01 -03:00
Georges Basile Stavracas Neto f1069c96d6 event: implement GInitable
Since the event creation can fail, lets make it a GInitable
so that we can fail during initialization.

https://bugzilla.gnome.org/show_bug.cgi?id=763166
2016-09-28 00:07:28 -03:00
Georges Basile Stavracas Neto cd50bec506 project: fix build warnings
https://bugzilla.gnome.org/show_bug.cgi?id=770466
2016-08-29 23:08:39 -03:00
Georges Basile Stavracas Neto 19d68573dd utils: move utility method to get alarm's minutes 2016-07-06 03:01:56 -03:00
Georges Basile Stavracas Neto 1ddc690810 event: add support for alarms
This commit prepares GcalEvent to handle alarms. Basically,
it is now able to load the current alarms of an event, and add
and remove alarms for them.
2016-07-06 03:01:56 -03:00
Iain Lane ace87328a9 event: If no end date is given, make the event be all_day explicitly
Previously we were synthesising an end date of "start + 1 day", but this
isn't necessary. RFC 2445 tells us that no end date already means an all
day event.

Check this case directly.

https://bugzilla.gnome.org/show_bug.cgi?id=762985
2016-03-08 16:36:41 +00:00
Monique Faria e48c585c94 event: fix crash when no end date is given
In this commit, we fixed a crash report that occurred when an event had no end date.

Events with no end dates are all-day, 1-day length events. But, when an event with no end date set was synchronized with calendar (happened mostly with birthdays), it caused crashes, because the function responsible for getting the end date received NULL.

To correct this, we considered that end = start + 1day when no end date is set. With this, the mistake was corrected. Another thing that was correct along with this were two memory leaks, caused by the allocation of both end and start date that were not been freed.

https://bugzilla.gnome.org/show_bug.cgi?id=762985
2016-03-08 00:48:16 -03:00
fosero e464eb6415 event: handle different tzid formats
tzid can have different formats depending on where it originates from:
regular or prefixed by a libical specific identifier. Use the
right icaltimezone_get_builtin_timezone* for each case.

https://bugzilla.gnome.org/show_bug.cgi?id=763180
2016-03-06 17:03:00 -03:00
Georges Basile Stavracas Neto 64747e4f80 event: load tzid with icaltimezone_get_builtin_timezone 2016-03-01 15:27:07 -03:00
Georges Basile Stavracas Neto d84be66d70 event-widget: bring back alarm icon 2016-02-29 22:20:52 -03:00
Georges Basile Stavracas Neto a56e6c00c3 event: both start & end dates must be midnight to be all day
https://bugzilla.gnome.org/show_bug.cgi?id=762570
2016-02-29 16:14:22 -03:00
Georges Basile Stavracas Neto 4d170155de event: remove spurious debug message 2016-02-29 16:09:55 -03:00
Georges Basile Stavracas Neto ce2c955269 event: correctly store timezones 2016-02-29 15:49:22 -03:00
Georges Basile Stavracas Neto 1cdd73a69a event: format tzid with builtin GDateTime facilities 2016-02-28 14:13:19 -03:00
Georges Basile Stavracas Neto 87620ebbbd event: properly set the timezone 2016-02-26 21:14:23 +01:00
Georges Basile Stavracas Neto e4bfdb7ed2 event: plug a memory leak 2016-02-22 00:02:59 -03:00
Georges Basile Stavracas Neto fd6d6e97c9 quick-add-popover: fix event creation again 2016-02-18 04:02:46 -02:00
Georges Basile Stavracas Neto 093e9fa52f event: properly detect the timezone 2016-02-17 18:56:42 +01:00
Georges Basile Stavracas Neto 3f4d11f68e event: normalize dates before applying them
I don't know the reasoning behind it, but sometimes
I see dates like March 32 or February 30. Events are
correctly added, so I suspect it's an issue with another
app.

In any case, we should be able to handle weird dates
without crashing, so normalize the dates before using
them.
2016-02-16 10:39:37 +09:00
Georges Basile Stavracas Neto 7a6a13d7e0 event: fix timezone handling
Using libical with libecal means that the dates
are always stored as UTF dates, and we receive the
timezone as the ECalComponentDateTime::tzid value.

This fact was net being considered when adding date
support on GcalEvent, and was causing various issues
when displaying dates.

Fix that by properly handling timezones in GcalEvent.
2016-02-15 20:42:47 -02:00
Georges Basile Stavracas Neto c66a1dbc6b event: fix is_multiday() method
We have to pass the end date first.
2016-02-15 20:42:47 -02:00
Georges Basile Stavracas Neto 5e0d4018f4 event: add a wrapper around events
Instead of relying on confusing structures, raw data
and direct access to components, add a wrapper for
events.
2016-02-14 12:17:37 -02:00