diff options
author | Damon Chaplin <damon@ximian.com> | 2001-10-26 07:28:15 +0800 |
---|---|---|
committer | Damon Chaplin <damon@src.gnome.org> | 2001-10-26 07:28:15 +0800 |
commit | e4e894969ece81b2ed434c7d66e4b2d1b42244d3 (patch) | |
tree | 2e496669781f0de409b5c18b711ffecc26f1a66d /calendar/cal-util/cal-recur.c | |
parent | 750c920dcdce2d34d7f9bce228ff897024808f26 (diff) | |
download | gsoc2013-evolution-e4e894969ece81b2ed434c7d66e4b2d1b42244d3.tar.gz gsoc2013-evolution-e4e894969ece81b2ed434c7d66e4b2d1b42244d3.tar.zst gsoc2013-evolution-e4e894969ece81b2ed434c7d66e4b2d1b42244d3.zip |
subtract 1 from any positive BYSETPOS value, since our array is 0-based.
2001-10-25 Damon Chaplin <damon@ximian.com>
* cal-util/cal-recur.c (cal_obj_bysetpos_filter): subtract 1 from
any positive BYSETPOS value, since our array is 0-based.
* gui/dialogs/recurrence-page.c (simple_recur_to_comp):
(recurrence_page_fill_widgets): Outlook (2000) will not accept monthly
recurrences like BYDAY=2TU. Instead it uses BYDAY=TU;BYSETPOS=2.
So to be compatable with it we now do the same, although we still
accept and convert the old format.
* cal-client/cal-client.c (cal_client_get_component_as_string): new
function to return a complete VCALENDAR string containing a VEVENT
or VTODO with all the VTIMEZONEs it uses.
* gui/dialogs/comp-editor.c (save_as_ok): use above function so we
save the VTIMEZONE data with the VEVENT/VTODO. Fixes bug #????.
Also made sure we output "METHOD:PUBLISH" since Outlook (2000) will
not import it otherwise.
* gui/dialogs/comp-editor.c (page_mapped_cb):
(page_unmapped_cb): install/uninstall the GtkAccelGroup for the page.
(comp_editor_append_page): connect to the map/unmap signals to
install/uninstall the accelerators. (This is all for bug #11609,
though of course it doesn't work too well in GTK+ 1.2 anyway.)
* gui/dialogs/task-page.c (get_widgets):
* gui/dialogs/task-details-page.c (get_widgets):
* gui/dialogs/schedule-page.c (get_widgets):
* gui/dialogs/recurrence-page.c (get_widgets):
* gui/dialogs/meeting-page.c (get_widgets):
* gui/dialogs/event-page.c (get_widgets):
* gui/dialogs/alarm-page.c (get_widgets): got the GtkAccelGroup from
the original window, ref'ed it and placed it in the CompEditorPage
struct.
* gui/dialogs/comp-editor-page.c (comp_editor_page_destroy): unref
any GtkAccelGroup for the page.
* gui/dialogs/task-page.glade: changed '_Confidential' to
'Con_fidential' as it clashed with '_Contacts'. It now matches the
event editor as well.
* gui/dialogs/event-page.glade:
* gui/dialogs/task-page.glade: Set CAN_FOCUS to TRUE for the custom
EDateEdit widgets, and set them as the accel targets of the labels.
svn path=/trunk/; revision=14108
Diffstat (limited to 'calendar/cal-util/cal-recur.c')
-rw-r--r-- | calendar/cal-util/cal-recur.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/calendar/cal-util/cal-recur.c b/calendar/cal-util/cal-recur.c index 28b1be9aec..1f11e89c0f 100644 --- a/calendar/cal-util/cal-recur.c +++ b/calendar/cal-util/cal-recur.c @@ -677,7 +677,9 @@ cal_recur_generate_instances_of_rule (CalComponent *comp, g_return_if_fail (start >= -1); g_return_if_fail (end >= -1); - /* Get dtstart, dtend, recurrences, and exceptions */ + /* Get dtstart, dtend, recurrences, and exceptions. Note that + cal_component_get_dtend() will convert a DURATION property to a + DTEND so we don't need to worry about that. */ cal_component_get_dtstart (comp, &dtstart); cal_component_get_dtend (comp, &dtend); @@ -706,8 +708,6 @@ cal_recur_generate_instances_of_rule (CalComponent *comp, if (start == -1) start = dtstart_time; - /* FIXME: DURATION could be used instead, couldn't it? - Damon */ - /* If there is no DTEND, then use the same as the DTSTART. For DATE-TIME values that means we will just have a single point in time. For DATE values it means we end up with the entire day. */ @@ -2049,6 +2049,10 @@ cal_obj_bysetpos_filter (CalRecurrence *recur, /* Negative values count back from the end of the array. */ if (pos < 0) pos += len; + /* Positive values need to be decremented since the array is + 0-based. */ + else + pos--; if (pos >= 0 && pos < len) { occ = &g_array_index (occs, CalObjTime, pos); |