aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJP Rosevear <jpr@ximian.com>2003-03-05 03:48:22 +0800
committerJP Rosevear <jpr@src.gnome.org>2003-03-05 03:48:22 +0800
commit1ca4ebaaeb073f8a136240ac03013cc2612524f9 (patch)
tree735838cf642f4b465d9daab7de403dd530ec8802
parent207efa9abf003c9b35c9e91b45ed1caafc5c5056 (diff)
downloadgsoc2013-evolution-1ca4ebaaeb073f8a136240ac03013cc2612524f9.tar.gz
gsoc2013-evolution-1ca4ebaaeb073f8a136240ac03013cc2612524f9.tar.zst
gsoc2013-evolution-1ca4ebaaeb073f8a136240ac03013cc2612524f9.zip
Fixes #35598
2003-03-04 JP Rosevear <jpr@ximian.com> Fixes #35598 * gui/dialogs/task-details-page.c (task_details_page_fill_widgets): count a status of needs action as a status of none (not started) (date_changed_cb): set the option menu to a status of none (status_changed): no need to handle needs action status now * gui/dialogs/task-details-page.glade: remove needs-action menu item Fixes #36763 * gui/dialogs/alarm-page.c (add_clicked_cb): if no address was set for an email alarm, set the default (button_options_clicked_cb): pass the default email address * gui/dialogs/alarm-options.h (alarm_options_dialog_run): update proto * gui/dialogs/alarm-options.c (alarm_to_malarm_widgets): if there are no email attendees, default to the passed in value (alarm_options_dialog_run): take and track an email param * pcs/cal.c (impl_Cal_get_alarm_email_address): implement by calling backend method (cal_class_init): set alarm email address method implementation * pcs/cal-backend.h: add new virtual proto * pcs/cal-backend.c (cal_backend_class_init): set alarm email address virtual method to NULL (cal_backend_get_alarm_email_address): call backend method * pcs/cal-backend-file.c (cal_backend_file_class_init): set alarm email address method (cal_backend_file_get_alarm_email_address): implement by returning NULL * idl/evolution-calendar.idl: add getAlarmEmailAddress method Fixes #37102 * gui/dialogs/task-editor.c (set_menu_sens): don't allow task assignment if the backend says not to * gui/dialogs/recurrence-page.c (fill_component): kill warning (preview_recur): display the recurrences in the dtstart timezone if possible * gui/gnome-cal.c (dn_query_obj_updated_cb): pass NULL to use default tag zone * gui/tag-calendar.c (tag_calendar_by_comp): allow display zone for the tagged calendar to be passed in (prepare_tag): use the passed in timezone for display if non-null * gui/tag-calendar.h (tag_calendar_by_comp): update proto * gui/dialogs/recurrence-page.c (recurrence_page_set_dates): make sure we always update the preview * conduits/todo/todo-conduit.c (add_record): make sure to create a unique uid for the record * conduits/calendar/calendar-conduit.c (add_record): ditto * conduits/todo/todo-conduit.c (e_todo_context_new): init default comp and timezone to NULL (e_todo_context_destroy): unref default comp (pre_sync): et the default comp via the client and set the default timezone (add_record): pass the default comp as the base comp * conduits/calendar/calendar-conduit.c (e_calendar_context_new): init default comp to NULL (e_calendar_context_destroy): unref default comp (pre_sync): get the default comp via the client (add_record): pass the default comp as the base comp * conduits/calendar/calendar-conduit.c (local_record_from_comp): only add the recurrence rule if its not an instance * gui/itip-control-factory.c (set_data_idle_cb): idle call back to set control data (pstream_load): set the data in an idle callback to avoid deadlock (get_prop): handle view_only (set_prop): ditto (itip_control_factory): add view_only * gui/e-itip-control.h: add protos * gui/e-itip-control.c (write_html): only write out the options if we aren't in view_only mode (e_itip_control_set_view_only): accessor (e_itip_control_get_view_only): ditto Fixes #36909 * gui/dialogs/alarm-page.c (button_options_clicked_cb): indicate whether the options dialog should allow repeating * gui/dialogs/alarm-options.h: update proto * gui/dialogs/alarm-options.c (alarm_to_repeat_widgets): if repeating is not allowed, sensitize the widgets appropriately (alarm_options_dialog_run): store the repeat param * gui/calendar-model.c (calendar_model_append_row): guard against saving before the calendar is open * gui/e-day-view.c (e_day_view_key_press): ditto * gui/dialogs/comp-editor.c (page_changed_cb): change warning dialog to not mention email (page_summary_changed_cb): ditto (page_dates_changed_cb): ditto * gui/itip-utils.c (itip_organizer_is_user): make the compare case insensitive * gui/dialogs/meeting-page.c (meeting_page_fill_widgets): don't allow the organizer to be changed if its not an email address * gui/e-day-view.c, calendar-model.c, e-week-view.c, task-editor.c, event-editor.c, comp-editor.c, meeting-page.c: pass additional param * gui/itip-utils.c (itip_organizer_is_user): take client as param, and if organizer-not-email-address and email address and organizer match, assume the user is the organizer * gui/itip-utils.h: update proto * pcs/cal.c (build_fb_seq): set the max * gui/e-meeting-model.c (e_meeting_model_add_attendee_with_defaults): correct typo and set rsvp appropriately * gui/dialogs/send-comp.c (send_component_dialog): if save schedules, return FALSE for now * gui/dialogs/recurrence-page.c (sensitize_recur_widgets): de-sensitize the preview widget if we are viewing an instance (preview_recur): return if the comp is an instance * gui/dialogs/event-page.glade: name the show time frame * gui/dialogs/event-page.c (event_page_fill_widgets) (event_page_init): init show time frame (event_page_fill_widgets): hide/show frame as needed (get_widgets): get the frame * gui/alarm-notify/alarm-queue.c (mail_notification): kill mail notification code * cal-client/cal-client.c (load_static_capabilities): grab static capabilities string (check_capability): see if a capability is in the string (cal_client_get_one_alarm_only): accessor (cal_client_get_organizer_must_attend): use check_capability (cal_client_get_static_capability): ditto * cal-client/cal-client.h: new, changed protos * idl/evolution-calendar.idl: change over getSchedulingInformation to a more general getStaticCapabilities call * pcs/cal-backend-file.c (cal_backend_file_get_static_capabilities): return "no-email-alarms" * pcs/cal-backend.c (cal_backend_get_static_capabilities): ditto * pcs/cal-backend.h: ditto * pcs/cal.c (impl_Cal_get_static_capabilities): ditto * gui/alarm-notify/alarm-queue.c (get_default_address): utility routine to snag address info * gui/alarm-notify/Makefile.am: build composer idl * *.c: pass client param for send an cancel params * gui/dialogs/send-comp.c (send_component_dialog): take client as a parm and if save schedules return true right away * gui/dialogs/send-comp.h: update proto * gui/dialogs/cancel-comp.c (cancel_component_dialog): take client as a param and if we are deleting and schedule saves, return true right away * gui/dialogs/cancel-comp.h (cancel_component_dialog): update proto * gui/dialogs/alarm-options.glade: add Send To: button * gui/dialogs/alarm-options.c (addressbook_clicked_cb): display dialog (setup_select_names): attach above to Send To: button clicked signal * gui/dialogs/alarm-options.c (get_widgets): get mail alarm widgets (setup_select_names): add the select names widget (alarm_to_malarm_widgets): show the attendees and description (alarm_to_dialog): set the title for mail alarms properly (malarm_widgets_to_alarm): save attendees and descriptions in alarm (alarm_options_dialog_run): call setup_select_names * gui/dialogs/alarm-page.c: add email to alarm types * gui/dialogs/alarm-options.glade: add mail alarm widgets * gui/dialogs/alarm-page.glade: add email to alarm types * cal-util/cal-component.c (scan_attendee): kill unnecessary CalComponent param (scan_property): don't pass same (set_attendee_list): take an icalcomp instead of a CalComponent (cal_component_set_attendee_list): pass same (scan_alarm_property): if its an attendee, scan it (make_alarm): set attendee_list member to null (cal_component_alarm_new): ditto (cal_component_alarm_free): free attendee list (cal_component_alarm_get_attendee_list): return attendee list (cal_component_alarm_set_attendee_list): set attendee list (cal_component_alarm_has_attendees): return true if alarm has attendees * cal-util/cal-component.h: new protos * gui/calendar-model.c (calendar_model_append_row): use cal_comp_task_new_with_defaults * gui/comp-editor-factory.c (get_default_task): ditto * gui/e-tasks.c (e_tasks_new_task): ditto * gui/gnome-cal.c (gnome_calendar_new_task): ditto * gui/comp-util.h (cal_comp_task_new_with_defaults): new proto * gui/comp-util.c (cal_comp_task_new_with_defaults): new utility routine * cal-util/cal-util.c (generate_absolute_triggers): skip omitted alarm types (add_alarm_occurrences_cb): ditto (cal_util_generate_alarms_for_list): take/pass omit param (cal_util_generate_alarms_for_comp): ditto * cal-util/cal-util.h: update protos * pcs/cal-backend-file.c (cal_backend_file_get_alarms_for_object): add omit param (cal_backend_file_get_alarms_in_range): ditto * pcs/cal-backend.c (cal_backend_get_scheduling_information): remove dead param * gui/dialogs/meeting-page.h: delete proto * gui/dialogs/meeting-page.c: remove dead routine * gui/dialogs/event-editor.c (event_editor_edit_comp): we don't need to add the organizer as an attendee ourselves, just set the edit level properly * gui/dialogs/task-editor.c (task_editor_edit_comp): ditto * gui/comp-util.c (cal_comp_event_new_with_defaults): take client as arg so we can obtain the default from the backend * gui/comp-editor-factory.c (get_default_event): pass cal_comp_event_new_with_defaults the new param * gui/gnome-cal.c (gnome_calendar_new_appointment_for): ditto * gui/e-week-view.c (e_week_view_key_press): ditto * gui/e-day-view.c (e_day_view_key_press): ditto * gui/calendar-model.c (calendar_model_append_row): ditto * gui/comp-util.h (cal_comp_event_new_with_defaults): update proto * pcs/cal-backend-file.c (cal_backend_file_get_default_object): return appropriate default object * pcs/cal-backend.c (cal_backend_get_default_object): call get_default_backend class method * pcs/cal-backend.h: add proto * pcs/cal.c (impl_Cal_get_default_object): implement (cal_class_init): set handler for getDefaultObject call * idl/evolution-calendar.idl: remove always schedule from SchedulingInformation and add getDefaultObject call * cal-client/cal-client.c (cal_client_get_default_object): gets a default object from the server (cal_client_init): remove always_schedule (load_scheduling_info): ditto * cal-client/cal-client.h: add a proto, delete a proto * gui/dialogs/meeting-page.c (right_click_cb): if the attendee is not fully editable, don't allow deletion (meeting_page_construct): keep the default organizer as an itip address (meeting_page_get_default_organizer): return the default organizer * gui/dialogs/meeting-page.h: new proto * gui/dialogs/event-editor.c (event_editor_edit_comp): we set appropriate edit levels now for users and if the backend always schedules we always show the meeting pages and add the organizer as an attendee * gui/dialogs/task-editor.c (task_editor_edit_comp): same * gui/e-meeting-model.c (is_cell_editable): use the edit level of the attendee to determine if cell is editable (init): we no longer keep the attendee list of restricted * gui/e-meeting-attendee.c (e_meeting_attendee_get_edit_level): accessor (e_meeting_attendee_set_edit_level): ditto * gui/e-meeting-attendee.h: new protos and edit level enum * cal-client/cal-client.c (load_scheduling_info): load the scheduling info (cal_client_get_always_schedule): accessor (cal_client_get_organizer_must_attend): ditto (cal_client_get_save_schedules): ditto (cal_client_init): init scheduling data members * cal-client/cal-client.h: accessors for scheduling information * pcs/cal-backend-file.c (cal_backend_file_get_scheduling_information): implement the new virtual method * pcs/cal-backend.c (cal_backend_get_scheduling_information): call the class specific method * pcs/cal-backend.h: add virtual method * idl/evolution-calendar.idl: add a getSchedulingInformation call which describes how the backend does its scheduling * pcs/cal.c (impl_Cal_get_scheduling_information): implement above * gui/e-day-view.c: pass NULL as parent to recur dialog * gui/e-week-view.c: ditto * gui/dialogs/comp-editor.c (prompt_to_save_changes): show recur dialog after prompting, not before (save_cmd): ditto (save_close_cmd): ditto (real_edit_comp): don't show recur dialog before opening * gui/dialogs/recur-comp.h (recur_component_dialog): update proto * gui/dialogs/recur-comp.c (recur_component_dialog): take a parent argument and set the dialog parent if non-null * gui/e-week-view.c (e_day_view_on_editing_stopped): Don't update appointment if both the old and the new summary texts are empty. * gui/e-week-view.c (e_week_view_show_popup_menu): mask out "make moveable" if its an instance * gui/e-day-view.c (e_day_view_on_event_right_click): ditto * gui/e-week-view.c (e_week_view_on_editing_stopped): if its an instance, show the recur comp dialog and modify it based on the response (or not if cancel is hit) * gui/e-day-view.c (e_day_view_finish_long_event_resize): if its an instance, show the recur comp dialog and modify it based on the response (or not if cancel is hit) (e_day_view_finish_resize): ditto (e_day_view_on_editing_stopped): ditto (e_day_view_on_top_canvas_drag_data_received): ditto (e_day_view_on_main_canvas_drag_data_received): ditto * gui/dialogs/comp-editor.c (real_edit_comp): reflect changes in proto of recur_component_dialog * gui/dialogs/recur-comp.c (recur_component_dialog): use ok/cancel instead and radio buttons for the mod type * gui/dialogs/recur-comp.h: update proto * gui/e-day-view.c (e_day_view_on_long_event_click): allow dragging if its an instance (e_day_view_on_event_click): ditto (e_day_view_on_top_canvas_motion): ditto (e_day_view_on_main_canvas_motion): ditto * gui/dialogs/comp-editor.c (save_comp): if its an instance, update with the mod type (real_edit_comp): ask the user what instances they want to change * gui/dialogs/recur-comp.[hc]: new dialog to ask user what recurrences to modify * gui/dialogs/Makefile.am: Compile new files * gui/e-day-view.c (e_day_view_on_delete_occurrence): if its an instance, just remove with THIS mod * gui/e-week-view.c (e_week_view_on_delete_occurrence): ditto * cal-client/cal-client.c (cal_client_remove_object_with_mod): send the mod parameter to the backend (cal_client_remove_object): implement with above (cal_client_update_object_with_mod): send the mod parameter to the backend (cal_client_update_object): implement with above * cal-client/cal-client.h: new protos * cal-client/cal-client.c (cal_client_is_read_only): return booleans in the pre conditions (cal_client_update_object): pass mod param (cal_client_update_objects): ditto (cal_client_remove_object): ditto (cal_client_ensure_timezone_on_server): ditto * pcs/cal.c (impl_Cal_update_objects): take mod param (impl_Cal_remove_object): ditto * pcs/cal-backend.h: fix protos * pcs/cal-backend.c (cal_backend_update_objects): take mod param (cal_backend_remove_object): ditto * pcs/cal-backend-file.c (cal_backend_file_update_objects): take mod param (cal_backend_file_remove_object): ditto * cal-util/cal-util.h: add mod enum * cal-util/cal-recur.c (cal_recur_generate_instances_of_rule): if its an instance, just report the instance * cal-util/cal-component.h: new protos * cal-util/cal-component.c (cal_component_is_instance): indicate whether the component is an instance or not (cal_component_free_range): free a range * idl/evolution-calendar.idl: get remove and update to take mod type svn path=/trunk/; revision=20141
-rw-r--r--calendar/ChangeLog463
1 files changed, 463 insertions, 0 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 03af629675..b6559a4df6 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,466 @@
+2003-03-04 JP Rosevear <jpr@ximian.com>
+
+ Fixes #35598
+
+ * gui/dialogs/task-details-page.c
+ (task_details_page_fill_widgets): count a status of needs action
+ as a status of none (not started)
+ (date_changed_cb): set the option menu to a status of none
+ (status_changed): no need to handle needs action status now
+
+ * gui/dialogs/task-details-page.glade: remove needs-action menu
+ item
+
+ Fixes #36763
+
+ * gui/dialogs/alarm-page.c (add_clicked_cb): if no address was set
+ for an email alarm, set the default
+ (button_options_clicked_cb): pass the default email address
+
+ * gui/dialogs/alarm-options.h (alarm_options_dialog_run): update proto
+
+ * gui/dialogs/alarm-options.c (alarm_to_malarm_widgets): if there
+ are no email attendees, default to the passed in value
+ (alarm_options_dialog_run): take and track an email param
+
+ * pcs/cal.c (impl_Cal_get_alarm_email_address): implement by
+ calling backend method
+ (cal_class_init): set alarm email address method implementation
+
+ * pcs/cal-backend.h: add new virtual proto
+
+ * pcs/cal-backend.c (cal_backend_class_init): set alarm email
+ address virtual method to NULL
+ (cal_backend_get_alarm_email_address): call backend method
+
+ * pcs/cal-backend-file.c (cal_backend_file_class_init): set alarm
+ email address method
+ (cal_backend_file_get_alarm_email_address): implement by returning
+ NULL
+
+ * idl/evolution-calendar.idl: add getAlarmEmailAddress method
+
+ Fixes #37102
+
+ * gui/dialogs/task-editor.c (set_menu_sens): don't allow task
+ assignment if the backend says not to
+
+ * gui/dialogs/recurrence-page.c (fill_component): kill warning
+ (preview_recur): display the recurrences in the dtstart timezone
+ if possible
+
+ * gui/gnome-cal.c (dn_query_obj_updated_cb): pass NULL to use
+ default tag zone
+
+ * gui/tag-calendar.c (tag_calendar_by_comp): allow display zone
+ for the tagged calendar to be passed in
+ (prepare_tag): use the passed in timezone for display if non-null
+
+ * gui/tag-calendar.h (tag_calendar_by_comp): update proto
+
+ * gui/dialogs/recurrence-page.c (recurrence_page_set_dates): make
+ sure we always update the preview
+
+ * conduits/todo/todo-conduit.c (add_record): make sure to create a
+ unique uid for the record
+
+ * conduits/calendar/calendar-conduit.c (add_record): ditto
+
+ * conduits/todo/todo-conduit.c (e_todo_context_new): init default
+ comp and timezone to NULL
+ (e_todo_context_destroy): unref default comp
+ (pre_sync): et the default comp via the client and set the default
+ timezone
+ (add_record): pass the default comp as the base comp
+
+ * conduits/calendar/calendar-conduit.c (e_calendar_context_new):
+ init default comp to NULL
+ (e_calendar_context_destroy): unref default comp
+ (pre_sync): get the default comp via the client
+ (add_record): pass the default comp as the base comp
+
+ * conduits/calendar/calendar-conduit.c (local_record_from_comp):
+ only add the recurrence rule if its not an instance
+
+ * gui/itip-control-factory.c (set_data_idle_cb): idle call back to
+ set control data
+ (pstream_load): set the data in an idle callback to avoid deadlock
+ (get_prop): handle view_only
+ (set_prop): ditto
+ (itip_control_factory): add view_only
+
+ * gui/e-itip-control.h: add protos
+
+ * gui/e-itip-control.c (write_html): only write out the options if
+ we aren't in view_only mode
+ (e_itip_control_set_view_only): accessor
+ (e_itip_control_get_view_only): ditto
+
+ Fixes #36909
+
+ * gui/dialogs/alarm-page.c (button_options_clicked_cb): indicate
+ whether the options dialog should allow repeating
+
+ * gui/dialogs/alarm-options.h: update proto
+
+ * gui/dialogs/alarm-options.c (alarm_to_repeat_widgets): if
+ repeating is not allowed, sensitize the widgets appropriately
+ (alarm_options_dialog_run): store the repeat param
+
+ * gui/calendar-model.c (calendar_model_append_row): guard against
+ saving before the calendar is open
+
+ * gui/e-day-view.c (e_day_view_key_press): ditto
+
+ * gui/dialogs/comp-editor.c (page_changed_cb): change warning
+ dialog to not mention email
+ (page_summary_changed_cb): ditto
+ (page_dates_changed_cb): ditto
+
+ * gui/itip-utils.c (itip_organizer_is_user): make the compare case
+ insensitive
+
+ * gui/dialogs/meeting-page.c (meeting_page_fill_widgets): don't
+ allow the organizer to be changed if its not an email address
+
+ * gui/e-day-view.c, calendar-model.c, e-week-view.c,
+ task-editor.c, event-editor.c, comp-editor.c, meeting-page.c: pass
+ additional param
+
+ * gui/itip-utils.c (itip_organizer_is_user): take client as param,
+ and if organizer-not-email-address and email address and organizer
+ match, assume the user is the organizer
+
+ * gui/itip-utils.h: update proto
+
+ * pcs/cal.c (build_fb_seq): set the max
+
+ * gui/e-meeting-model.c
+ (e_meeting_model_add_attendee_with_defaults): correct typo and set
+ rsvp appropriately
+
+ * gui/dialogs/send-comp.c (send_component_dialog): if save
+ schedules, return FALSE for now
+
+ * gui/dialogs/recurrence-page.c (sensitize_recur_widgets):
+ de-sensitize the preview widget if we are viewing an instance
+ (preview_recur): return if the comp is an instance
+
+ * gui/dialogs/event-page.glade: name the show time frame
+
+ * gui/dialogs/event-page.c (event_page_fill_widgets)
+ (event_page_init): init show time frame
+ (event_page_fill_widgets): hide/show frame as needed
+ (get_widgets): get the frame
+
+ * gui/alarm-notify/alarm-queue.c (mail_notification): kill mail
+ notification code
+
+ * cal-client/cal-client.c (load_static_capabilities): grab static
+ capabilities string
+ (check_capability): see if a capability is in the string
+ (cal_client_get_one_alarm_only): accessor
+ (cal_client_get_organizer_must_attend): use check_capability
+ (cal_client_get_static_capability): ditto
+
+ * cal-client/cal-client.h: new, changed protos
+
+ * idl/evolution-calendar.idl: change over getSchedulingInformation
+ to a more general getStaticCapabilities call
+
+ * pcs/cal-backend-file.c
+ (cal_backend_file_get_static_capabilities): return
+ "no-email-alarms"
+
+ * pcs/cal-backend.c (cal_backend_get_static_capabilities): ditto
+
+ * pcs/cal-backend.h: ditto
+
+ * pcs/cal.c (impl_Cal_get_static_capabilities): ditto
+
+ * gui/alarm-notify/alarm-queue.c (get_default_address): utility
+ routine to snag address info
+
+ * gui/alarm-notify/Makefile.am: build composer idl
+
+ * *.c: pass client param for send an cancel params
+
+ * gui/dialogs/send-comp.c (send_component_dialog): take client as
+ a parm and if save schedules return true right away
+
+ * gui/dialogs/send-comp.h: update proto
+
+ * gui/dialogs/cancel-comp.c (cancel_component_dialog): take client
+ as a param and if we are deleting and schedule saves, return true
+ right away
+
+ * gui/dialogs/cancel-comp.h (cancel_component_dialog): update proto
+
+ * gui/dialogs/alarm-options.glade: add Send To: button
+
+ * gui/dialogs/alarm-options.c (addressbook_clicked_cb): display
+ dialog
+ (setup_select_names): attach above to Send To: button clicked
+ signal
+
+ * gui/dialogs/alarm-options.c (get_widgets): get mail alarm
+ widgets
+ (setup_select_names): add the select names widget
+ (alarm_to_malarm_widgets): show the attendees and description
+ (alarm_to_dialog): set the title for mail alarms properly
+ (malarm_widgets_to_alarm): save attendees and descriptions in
+ alarm
+ (alarm_options_dialog_run): call setup_select_names
+
+ * gui/dialogs/alarm-page.c: add email to alarm types
+
+ * gui/dialogs/alarm-options.glade: add mail alarm widgets
+
+ * gui/dialogs/alarm-page.glade: add email to alarm types
+
+ * cal-util/cal-component.c (scan_attendee): kill unnecessary
+ CalComponent param
+ (scan_property): don't pass same
+ (set_attendee_list): take an icalcomp instead of a CalComponent
+ (cal_component_set_attendee_list): pass same
+ (scan_alarm_property): if its an attendee, scan it
+ (make_alarm): set attendee_list member to null
+ (cal_component_alarm_new): ditto
+ (cal_component_alarm_free): free attendee list
+ (cal_component_alarm_get_attendee_list): return attendee list
+ (cal_component_alarm_set_attendee_list): set attendee list
+ (cal_component_alarm_has_attendees): return true if alarm has attendees
+
+ * cal-util/cal-component.h: new protos
+
+ * gui/calendar-model.c (calendar_model_append_row): use
+ cal_comp_task_new_with_defaults
+
+ * gui/comp-editor-factory.c (get_default_task): ditto
+
+ * gui/e-tasks.c (e_tasks_new_task): ditto
+
+ * gui/gnome-cal.c (gnome_calendar_new_task): ditto
+
+ * gui/comp-util.h (cal_comp_task_new_with_defaults): new proto
+
+ * gui/comp-util.c (cal_comp_task_new_with_defaults): new utility
+ routine
+
+ * cal-util/cal-util.c (generate_absolute_triggers): skip omitted
+ alarm types
+ (add_alarm_occurrences_cb): ditto
+ (cal_util_generate_alarms_for_list): take/pass omit param
+ (cal_util_generate_alarms_for_comp): ditto
+
+ * cal-util/cal-util.h: update protos
+
+ * pcs/cal-backend-file.c (cal_backend_file_get_alarms_for_object):
+ add omit param
+ (cal_backend_file_get_alarms_in_range): ditto
+
+ * pcs/cal-backend.c (cal_backend_get_scheduling_information):
+ remove dead param
+
+ * gui/dialogs/meeting-page.h: delete proto
+
+ * gui/dialogs/meeting-page.c: remove dead routine
+
+ * gui/dialogs/event-editor.c (event_editor_edit_comp): we don't
+ need to add the organizer as an attendee ourselves, just set the
+ edit level properly
+
+ * gui/dialogs/task-editor.c (task_editor_edit_comp): ditto
+
+ * gui/comp-util.c (cal_comp_event_new_with_defaults): take client
+ as arg so we can obtain the default from the backend
+
+ * gui/comp-editor-factory.c (get_default_event): pass
+ cal_comp_event_new_with_defaults the new param
+
+ * gui/gnome-cal.c (gnome_calendar_new_appointment_for): ditto
+
+ * gui/e-week-view.c (e_week_view_key_press): ditto
+
+ * gui/e-day-view.c (e_day_view_key_press): ditto
+
+ * gui/calendar-model.c (calendar_model_append_row): ditto
+
+ * gui/comp-util.h (cal_comp_event_new_with_defaults): update proto
+
+ * pcs/cal-backend-file.c (cal_backend_file_get_default_object):
+ return appropriate default object
+
+ * pcs/cal-backend.c (cal_backend_get_default_object): call
+ get_default_backend class method
+
+ * pcs/cal-backend.h: add proto
+
+ * pcs/cal.c (impl_Cal_get_default_object): implement
+ (cal_class_init): set handler for getDefaultObject call
+
+ * idl/evolution-calendar.idl: remove always schedule from
+ SchedulingInformation and add getDefaultObject call
+
+ * cal-client/cal-client.c (cal_client_get_default_object): gets a
+ default object from the server
+ (cal_client_init): remove always_schedule
+ (load_scheduling_info): ditto
+
+ * cal-client/cal-client.h: add a proto, delete a proto
+
+ * gui/dialogs/meeting-page.c (right_click_cb): if the attendee is
+ not fully editable, don't allow deletion
+ (meeting_page_construct): keep the default organizer as an itip
+ address
+ (meeting_page_get_default_organizer): return the default organizer
+
+ * gui/dialogs/meeting-page.h: new proto
+
+ * gui/dialogs/event-editor.c (event_editor_edit_comp): we set
+ appropriate edit levels now for users and if the backend always
+ schedules we always show the meeting pages and add the organizer
+ as an attendee
+
+ * gui/dialogs/task-editor.c (task_editor_edit_comp): same
+
+ * gui/e-meeting-model.c (is_cell_editable): use the edit level of
+ the attendee to determine if cell is editable
+ (init): we no longer keep the attendee list of restricted
+
+ * gui/e-meeting-attendee.c (e_meeting_attendee_get_edit_level): accessor
+ (e_meeting_attendee_set_edit_level): ditto
+
+ * gui/e-meeting-attendee.h: new protos and edit level enum
+
+ * cal-client/cal-client.c (load_scheduling_info): load the
+ scheduling info
+ (cal_client_get_always_schedule): accessor
+ (cal_client_get_organizer_must_attend): ditto
+ (cal_client_get_save_schedules): ditto
+ (cal_client_init): init scheduling data members
+
+ * cal-client/cal-client.h: accessors for scheduling information
+
+ * pcs/cal-backend-file.c
+ (cal_backend_file_get_scheduling_information): implement the new
+ virtual method
+
+ * pcs/cal-backend.c (cal_backend_get_scheduling_information): call
+ the class specific method
+
+ * pcs/cal-backend.h: add virtual method
+
+ * idl/evolution-calendar.idl: add a getSchedulingInformation call
+ which describes how the backend does its scheduling
+
+ * pcs/cal.c (impl_Cal_get_scheduling_information): implement above
+
+ * gui/e-day-view.c: pass NULL as parent to recur dialog
+
+ * gui/e-week-view.c: ditto
+
+ * gui/dialogs/comp-editor.c (prompt_to_save_changes): show recur
+ dialog after prompting, not before
+ (save_cmd): ditto
+ (save_close_cmd): ditto
+ (real_edit_comp): don't show recur dialog before opening
+
+ * gui/dialogs/recur-comp.h (recur_component_dialog): update proto
+
+ * gui/dialogs/recur-comp.c (recur_component_dialog): take a parent
+ argument and set the dialog parent if non-null
+
+ * gui/e-week-view.c (e_day_view_on_editing_stopped): Don't update
+ appointment if both the old and the new summary texts are empty.
+
+ * gui/e-week-view.c (e_week_view_show_popup_menu): mask out "make
+ moveable" if its an instance
+
+ * gui/e-day-view.c (e_day_view_on_event_right_click): ditto
+
+ * gui/e-week-view.c (e_week_view_on_editing_stopped): if its
+ an instance, show the recur comp dialog and modify it based on the
+ response (or not if cancel is hit)
+
+ * gui/e-day-view.c (e_day_view_finish_long_event_resize): if its
+ an instance, show the recur comp dialog and modify it based on the
+ response (or not if cancel is hit)
+ (e_day_view_finish_resize): ditto
+ (e_day_view_on_editing_stopped): ditto
+ (e_day_view_on_top_canvas_drag_data_received): ditto
+ (e_day_view_on_main_canvas_drag_data_received): ditto
+
+ * gui/dialogs/comp-editor.c (real_edit_comp): reflect changes in
+ proto of recur_component_dialog
+
+ * gui/dialogs/recur-comp.c (recur_component_dialog): use ok/cancel
+ instead and radio buttons for the mod type
+
+ * gui/dialogs/recur-comp.h: update proto
+
+ * gui/e-day-view.c (e_day_view_on_long_event_click): allow
+ dragging if its an instance
+ (e_day_view_on_event_click): ditto
+ (e_day_view_on_top_canvas_motion): ditto
+ (e_day_view_on_main_canvas_motion): ditto
+
+ * gui/dialogs/comp-editor.c (save_comp): if its an instance,
+ update with the mod type
+ (real_edit_comp): ask the user what instances they want to change
+
+ * gui/dialogs/recur-comp.[hc]: new dialog to ask user what
+ recurrences to modify
+
+ * gui/dialogs/Makefile.am: Compile new files
+
+ * gui/e-day-view.c (e_day_view_on_delete_occurrence): if its an
+ instance, just remove with THIS mod
+
+ * gui/e-week-view.c (e_week_view_on_delete_occurrence): ditto
+
+ * cal-client/cal-client.c (cal_client_remove_object_with_mod):
+ send the mod parameter to the backend
+ (cal_client_remove_object): implement with above
+ (cal_client_update_object_with_mod): send the mod parameter to the
+ backend
+ (cal_client_update_object): implement with above
+
+ * cal-client/cal-client.h: new protos
+
+ * cal-client/cal-client.c (cal_client_is_read_only): return
+ booleans in the pre conditions
+ (cal_client_update_object): pass mod param
+ (cal_client_update_objects): ditto
+ (cal_client_remove_object): ditto
+ (cal_client_ensure_timezone_on_server): ditto
+
+ * pcs/cal.c (impl_Cal_update_objects): take mod param
+ (impl_Cal_remove_object): ditto
+
+ * pcs/cal-backend.h: fix protos
+
+ * pcs/cal-backend.c (cal_backend_update_objects): take mod param
+ (cal_backend_remove_object): ditto
+
+ * pcs/cal-backend-file.c (cal_backend_file_update_objects): take
+ mod param
+ (cal_backend_file_remove_object): ditto
+
+ * cal-util/cal-util.h: add mod enum
+
+ * cal-util/cal-recur.c (cal_recur_generate_instances_of_rule): if
+ its an instance, just report the instance
+
+ * cal-util/cal-component.h: new protos
+
+ * cal-util/cal-component.c (cal_component_is_instance): indicate
+ whether the component is an instance or not
+ (cal_component_free_range): free a range
+
+ * idl/evolution-calendar.idl: get remove and update to take mod
+ type
+
2003-03-03 Hans Petter Jansson <hpj@ximian.com>
* gui/dialogs/alarm-page.c