From 627e7113cc97bc3ca2a94ea7c3a556eb15b95af0 Mon Sep 17 00:00:00 2001 From: Rodrigo Moya Date: Tue, 31 Jul 2001 14:46:48 +0000 Subject: yes, set the end date, but correctly calculated, not by using the 2001-07-31 Rodrigo Moya * gui/e-day-view.c (selection_received): * gui/e-week-view.c (selection_received): yes, set the end date, but correctly calculated, not by using the component's duration, which may not exist. Now really fixes #5836 svn path=/trunk/; revision=11510 --- calendar/ChangeLog | 7 +++++++ calendar/gui/e-day-view.c | 14 +++++++++++++- calendar/gui/e-week-view.c | 12 ++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 42e22fc813..313b4a6b62 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,10 @@ +2001-07-31 Rodrigo Moya + + * gui/e-day-view.c (selection_received): + * gui/e-week-view.c (selection_received): yes, set the end date, but + correctly calculated, not by using the component's duration, which + may not exist. Now really fixes #5836 + 2001-07-31 Rodrigo Moya * gui/e-day-view.c (selection_received): diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c index 4da82c61a5..daff360ab6 100644 --- a/calendar/gui/e-day-view.c +++ b/calendar/gui/e-day-view.c @@ -6680,6 +6680,8 @@ selection_received (GtkWidget *invisible, icalcomponent_kind kind; CalComponent *comp; char *uid; + time_t tt_start, tt_end; + struct icaldurationtype ic_dur; g_return_if_fail (E_IS_DAY_VIEW (day_view)); @@ -6718,9 +6720,14 @@ selection_received (GtkWidget *invisible, child_kind == ICAL_VJOURNAL_COMPONENT) { CalComponent *tmp_comp; + tt_start = icaltime_as_timet (icalcomponent_get_dtstart (subcomp)); + tt_end = icaltime_as_timet (icalcomponent_get_dtend (subcomp)); + ic_dur = icaldurationtype_from_int (tt_end - tt_start); itime = icaltime_from_timet_with_zone (dtstart, FALSE, day_view->zone); /* FIXME: Need to set TZID. */ - icalcomponent_set_dtstart (icalcomp, itime); + icalcomponent_set_dtstart (subcomp, itime); + itime = icaltime_add (itime, ic_dur); + icalcomponent_set_dtend (subcomp, itime); uid = cal_component_gen_uid (); tmp_comp = cal_component_new (); @@ -6747,9 +6754,14 @@ selection_received (GtkWidget *invisible, } } else { + tt_start = icaltime_as_timet (icalcomponent_get_dtstart (icalcomp)); + tt_end = icaltime_as_timet (icalcomponent_get_dtend (icalcomp)); + ic_dur = icaldurationtype_from_int (tt_end - tt_start); itime = icaltime_from_timet_with_zone (dtstart, FALSE, day_view->zone); /* FIXME: Need to set TZID. */ icalcomponent_set_dtstart (icalcomp, itime); + itime = icaltime_add (itime, ic_dur); + icalcomponent_set_dtend (icalcomp, itime); comp = cal_component_new (); cal_component_set_icalcomponent (comp, icalcomp); diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c index 2e5d2d72e6..c0b9d82a10 100644 --- a/calendar/gui/e-week-view.c +++ b/calendar/gui/e-week-view.c @@ -3591,6 +3591,8 @@ selection_received (GtkWidget *invisible, icalcomponent_kind kind; CalComponent *comp; char *uid; + time_t tt_start, tt_end; + struct icaldurationtype ic_dur; g_return_if_fail (E_IS_WEEK_VIEW (week_view)); @@ -3629,9 +3631,14 @@ selection_received (GtkWidget *invisible, child_kind == ICAL_VJOURNAL_COMPONENT) { CalComponent *tmp_comp; + tt_start = icaltime_as_timet (icalcomponent_get_dtstart (subcomp)); + tt_end = icaltime_as_timet (icalcomponent_get_dtend (subcomp)); + ic_dur = icaldurationtype_from_int (tt_end - tt_start); itime = icaltime_from_timet_with_zone (dtstart, FALSE, week_view->zone); /* FIXME: Need to set TZID. */ icalcomponent_set_dtstart (icalcomp, itime); + itime = icaltime_add (itime, ic_dur); + icalcomponent_set_dtend (icalcomp, itime); uid = cal_component_gen_uid (); tmp_comp = cal_component_new (); @@ -3658,9 +3665,14 @@ selection_received (GtkWidget *invisible, } } else { + tt_start = icaltime_as_timet (icalcomponent_get_dtstart (icalcomp)); + tt_end = icaltime_as_timet (icalcomponent_get_dtend (icalcomp)); + ic_dur = icaldurationtype_from_int (tt_end - tt_start); itime = icaltime_from_timet_with_zone (dtstart, FALSE, week_view->zone); /* FIXME: need to set TZID */ icalcomponent_set_dtstart (icalcomp, itime); + itime = icaltime_add (itime, ic_dur); + icalcomponent_set_dtend (icalcomp, itime); comp = cal_component_new (); cal_component_set_icalcomponent (comp, icalcomp); -- cgit v1.2.3