- Jun 22, 2020
-
-
Sebastien Bacher authored
-
- Jun 18, 2020
-
-
Georges Basile Stavracas Neto authored
-
Georges Basile Stavracas Neto authored
We can avoid a lookup by simply checking if the alarm id isn't NULL.
-
Georges Basile Stavracas Neto authored
Cloning an ECalComponent can fail, and we need to be able to catch these failures. Assert that cloning was successful before procceeding with the move.
-
Georges Basile Stavracas Neto authored
GcalEditDialog code pre-dates GcalEvent and apply changes directly to the underlying ECalComponent. However, it doesn't commit the sequence after doing so, which opens the door for doom. Commit the component sequence after changing the recurrence data.
-
Georges Basile Stavracas Neto authored
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
-
Georges Basile Stavracas Neto authored
When moving an event to another calendar, the GcalEvent instance that is being held by GcalEditDialog is not valid one. On the other hand, moving an event shouldn't trigger an update either. For now, simply fake a GTK_RESPONSE_CANCEL. In the future, it'll be better to move most of the GcalWindow code to GcalEventDialog itself.
-
Georges Basile Stavracas Neto authored
To simplify readability of the response function, move some of its code to an auxiliary function.
-
Douglas Fuller authored
Update week-header to use the same clone strategy used by month-cell
-
Douglas Fuller authored
-
Douglas Fuller authored
Update week-grid to use the same clone strategy used by month-cell Fixes #607
-
Douglas Fuller authored
-
Georges Basile Stavracas Neto authored
Pretty much the same rationale and implementation of the previous commit.
-
Georges Basile Stavracas Neto authored
Instead of modifying the original event, create a new event from it and modify this new event instead. After updating it through gcal_manager_update_event(), GcalMonthView will remove the old instance and add the new one anyway.
-
Georges Basile Stavracas Neto authored
It's useful for debugging DnD.
-
Georges Basile Stavracas Neto authored
Edit a cloned event instead of the actual event, so that it can preserve the original event's integrity. This allows for a major edit dialog cleanup in the future.
-
Georges Basile Stavracas Neto authored
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.
-
Georges Basile Stavracas Neto authored
-
Douglas Fuller authored
When inserting events into the display grid, use local start and end times. Fixes #599
-
- Jun 15, 2020
-
-
Evangelos Ribeiro Tzaras authored
In locales where the first weekday is a monday, the previous code had a off by one error determining the week a sunday is in. The problem ultimately arose because in the `gcal_date_time_get_start_of_week()` function the variable `n_days_after_week_start` would become negative (-1 in this case) making the following `g_date_time_add_days (date, -n_days_after_week_start)` add 1 day resulting in `start_of_week` being set to the start of the following week. The solution was to make sure `n_days_after_week_start` would be positive by adding 7 to it. The variable is taken modulo 7 hence this should not introduce any bugs. Fixes #583 (cherry picked from commit 07f544b7)
-
- Apr 17, 2020
-
-
Simon McVittie authored
-
- Apr 16, 2020
-
-
Georges Basile Stavracas Neto authored
-
Georges Basile Stavracas Neto authored
May prevent a few events from being transmitted.
-
Georges Basile Stavracas Neto authored
The month view looks specially awful when switching between dates, since it doesn't implicitly filter the ranges it's displaying. Ignore events outside the current month range, since they'll be removed anyway by the timeline.
-
Georges Basile Stavracas Neto authored
The behavior of gcal_range_compare(), and the 'position' argument of gcal_range_calculate_overlap(), should be the same. However, because we were comparing the end dates in the wrong order, they didn't match. Fix that by properly comparing the end of the ranges.
-
Georges Basile Stavracas Neto authored
Moving to have one subscriber per event made us face an interesting problem: when removing an event, there may be no subscribers that contain this event, in which case we never queue any REMOVE_EVENT and the range tree isn't updated. Add sentinel events (that update the range tree) and subscriber events (that update subscribers, but not the range tree).
-
Georges Basile Stavracas Neto authored
When we add an event to the queue, and later remove it, if the event is still in the queue, we can just cancel both out and save the timeline some processing time.
-
Georges Basile Stavracas Neto authored
-
Georges Basile Stavracas Neto authored
-
Georges Basile Stavracas Neto authored
-
Georges Basile Stavracas Neto authored
When the old and the new range of the subscribers don't overlap entirely, we can't use the regular diff algorithm. It fails quite spectacularly. Do a full cleanup when ranges don't overlap.
-
Georges Basile Stavracas Neto authored
Now that we queue one event per subscriber, we need to make sure to update the range tree only once.
-
Georges Basile Stavracas Neto authored
update_range() does not remove any subscriber. They must be removed manually.
-
Georges Basile Stavracas Neto authored
Because the timeline is essentially asynchronous, it may try and process events after their subscribers were removed. Protect against that. Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/576
-
Georges Basile Stavracas Neto authored
Right now, GcalTimeline queues one event per N subscribers. Queue one event per subscriber instead.
-
Michael Catanzaro authored
g_source_destroy doesn't free memory, just removes the source from its main context. We have to do both. (g_source_unref() might call g_source_destroy() if it has the last ref, but if something else has another ref, then disaster could result if we don't call it manually.)
-
Clarissa Borges authored
More examples of possible dates for events were added to the test cases. Superset, subset, intersection and no overlap cases are covered.
-
- Apr 14, 2020
-
-
Michael Catanzaro authored
We can implement webcal:// by simply rewriting the URI to https://. Amazing! Fixes #564 (cherry picked from commit a3e9af23)
-
Georges Basile Stavracas Neto authored
Comparing ranges is so easy now that we don't need this helper anymore.
-
Georges Basile Stavracas Neto authored
GcalRange is now smart enough to compare correctly with other ranges.
-