324e3ef71c7d107459a9c47bcdac02f71566212a
This commit does a bit too much, but with these themes:
- Move the recurrence fields into GcalScheduleValues. This was needed
for consistency, anyway, and...
- ... the next step was to make ::changed() work, which actually
required knowing the original and current values of the recurrence as
well as the dates.
- But then, having a field "orig_foo" for each field "foo" starts
getting unwieldy. So, I moved things around:
- GcalScheduleValues has start/end dates and all_day, and the recurrence.
- GcalScheduleSectionValues is new; it has the "orig" and "curr"
values of the previous type. This simplifies memory management
since each field can be freed with gcal_schedule_values_free()
instead of duplicating _free() for each sub-field.
- GcalScheduleSectionValues also has time_format, as a way to
decouple that value from GcalContext. It's not in orig/curr
because it does not pertain the event; it's just a display-related
thing.
- Actually fix gcal_schedule_section_changed(),
gcal_schedule_section_recurrence_changed(), and
gcal_schedule_section_day_changed(). These become simple since they
just look at the orig/curr fields, without having to touch widgetry.
- All test pass.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
GNOME Calendar
GNOME Calendar is a simple and beautiful calendar application for GNOME. We give a lot of attention to details, and as such, design is an essential and ongoing effort.
Contributors Guide
Check out our CONTRIBUTING.md and HACKING.md for more details.
Useful links
- Homepage: https://apps.gnome.org/Calendar/
- Report issues: https://gitlab.gnome.org/GNOME/gnome-calendar/issues/
- Donate: https://www.gnome.org/donate/
- Translate: https://l10n.gnome.org/module/gnome-calendar/
Languages
C
97.6%
Meson
1.2%
CSS
0.7%
Python
0.3%
Shell
0.2%