[evolution/gnome-41] I#1758 - Calendar: Adapt to libical 3.0.12 change



commit b9422c7ebf2242ccdd5affd335f946632c1b7865
Author: Milan Crha <mcrha redhat com>
Date:   Wed Jan 5 13:30:23 2022 +0100

    I#1758 - Calendar: Adapt to libical 3.0.12 change
    
    The behavior of the i_cal_component_get_dtend() changed after [1],
    which uncovered requirement for some changes on the Evolution side
    to use properties only for components of an allowed type.
    
    [1] https://github.com/libical/libical/pull/519
    
    Closes https://gitlab.gnome.org/GNOME/evolution/-/issues/1758

 src/calendar/gui/e-cal-component-preview.c | 4 ++--
 src/calendar/gui/e-cal-dialogs.c           | 2 +-
 src/calendar/gui/e-comp-editor.c           | 5 ++++-
 3 files changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/src/calendar/gui/e-cal-component-preview.c b/src/calendar/gui/e-cal-component-preview.c
index a27abafed4..7f1fed7108 100644
--- a/src/calendar/gui/e-cal-component-preview.c
+++ b/src/calendar/gui/e-cal-component-preview.c
@@ -299,7 +299,7 @@ cal_component_preview_write_html (ECalComponentPreview *preview,
        e_cal_component_datetime_free (dt);
 
        /* write end date */
-       dt = e_cal_component_get_dtend (comp);
+       dt = e_cal_component_get_vtype (comp) == E_CAL_COMPONENT_EVENT ? e_cal_component_get_dtend (comp) : 
NULL;
        if (dt && e_cal_component_datetime_get_value (dt)) {
                str = timet_to_str_with_zone (dt, client, default_zone);
                cal_component_preview_add_table_line (buffer, _("End Date:"), str);
@@ -308,7 +308,7 @@ cal_component_preview_write_html (ECalComponentPreview *preview,
        e_cal_component_datetime_free (dt);
 
        /* write Due Date */
-       dt = e_cal_component_get_due (comp);
+       dt = e_cal_component_get_vtype (comp) == E_CAL_COMPONENT_TODO ? e_cal_component_get_due (comp) : NULL;
        if (dt && e_cal_component_datetime_get_value (dt)) {
                str = timet_to_str_with_zone (dt, client, default_zone);
                cal_component_preview_add_table_line (buffer, _("Due Date:"), str);
diff --git a/src/calendar/gui/e-cal-dialogs.c b/src/calendar/gui/e-cal-dialogs.c
index 4ed27daaae..d9442d5186 100644
--- a/src/calendar/gui/e-cal-dialogs.c
+++ b/src/calendar/gui/e-cal-dialogs.c
@@ -47,7 +47,7 @@ is_past_event (ECalComponent *comp)
        if (!comp)
                return TRUE;
 
-       end_date = e_cal_component_get_dtend (comp);
+       end_date = e_cal_component_get_vtype (comp) == E_CAL_COMPONENT_EVENT ? e_cal_component_get_dtend 
(comp) : NULL;
 
        if (!end_date)
                return FALSE;
diff --git a/src/calendar/gui/e-comp-editor.c b/src/calendar/gui/e-comp-editor.c
index 16b3e15204..c6506e0707 100644
--- a/src/calendar/gui/e-comp-editor.c
+++ b/src/calendar/gui/e-comp-editor.c
@@ -3375,7 +3375,10 @@ ece_check_start_before_end (ECompEditor *comp_editor,
                        ICalTime *orig_start, *orig_end;
 
                        orig_start = i_cal_component_get_dtstart (icomp);
-                       orig_end = i_cal_component_get_dtend (icomp);
+                       if (e_cal_util_component_has_property (icomp, I_CAL_DTEND_PROPERTY))
+                               orig_end = i_cal_component_get_dtend (icomp);
+                       else
+                               orig_end = i_cal_component_get_due (icomp);
 
                        if (orig_start && i_cal_time_is_valid_time (orig_start) &&
                            orig_end && i_cal_time_is_valid_time (orig_end)) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]