2003-03-21 JP Rosevear <jpr@ximian.com>
Fixes#32248
* conduits/todo/todo-conduit.c (comp_from_remote_record): make
sure the due date is actually a date
svn path=/trunk/; revision=20459
2003-03-21 JP Rosevear <jpr@ximian.com>
Fixes#31660
* conduits/calendar/calendar-conduit.c (rrules_mostly_equal):
check if the rrules are equal other than until/count
(find_last_cb): update the data with the start timet
(local_record_from_comp): handle the case where the recurrence
rule ends after a certain number occurrences
(comp_from_remote_record): same
svn path=/trunk/; revision=20458
2003-03-20 JP Rosevear <jpr@ximian.com>
* conduits/calendar/calendar-conduit.c
(e_calendar_context_destroy): calcomponents are gobjects now
(calconduit_load_configuration): ref and sink to avoid warnings
* conduits/todo/todo-conduit.c (todoconduit_load_configuration):
ref and sink to avoid warnings
(e_todo_context_destroy): calcomponents are gobjects now
svn path=/trunk/; revision=20437
2003-03-20 Rodrigo Moya <rodrigo@ximian.com>
* gui/dialogs/cancel-comp.c (cancel_component_dialog): use a
GtkMessageDialog and deal correctly with the dialog's reponses.
svn path=/trunk/; revision=20434
2003-03-20 Rodrigo Moya <rodrigo@ximian.com>
Fixes#39770
* gui/itip-utils.c (itip_Send_comp): check the CORBA exception instead
of the g_return_val_if_fail. Also, use a CORBA_Object for the value
returned from bonobo_activation_activate_from_id.
svn path=/trunk/; revision=20382
2003-03-18 Rodrigo Moya <rodrigo@ximian.com>
* gui/dialogs/send-comp.c (send_component_dialog): use GtkMessageDialog
instead of gnome_question_dialog, and deal correctly with the dialog's
response.
svn path=/trunk/; revision=20342
2003-03-18 Rodrigo Moya <rodrigo@ximian.com>
Fixes#34505
* gui/alarm-notify/alarm-queue.c (remove_queued_alarm): added removal
of the alarm itself in the calendar if the (new) argument says so.
Also, set expecting_update flag to TRUE.
(add_component_alarms): initialize expecting_update to FALSE.
(remove_alarms): don't remove the component if expecting_update is
TRUE.
(obj_updated_cb, notify_dialog_cb, procedure_notification): adapted
to changes in remove_queued_alarm.
svn path=/trunk/; revision=20335
2003-03-17 Hans Petter Jansson <hpj@ximian.com>
Fixes#34095
* gui/e-meeting-model.c (append_row): Don't leak meeting attendees;
unref the attendee after it's assigned to model.
* gui/dialogs/meeting-page.c (meeting_page_destroy): Free the actual
array of deleted attendees.
* gui/dialogs/event-editor.c (event_editor_destroy): Free the private
structure.
* gui/itip-utils.c (comp_description): Rework free/busy information
composer so we can free date/time information after use. Then free it.
(itip_send_comp): Free the allocated CORBA buffer for attachment data.
* gui/dialogs/comp-editor-util.c (comp_editor_contacts_to_component):
Free the destination contacts string once we're done with it.
* gui/e-calendar-table.c (invisible_destroyed): Unref the invisible.
* gui/e-day-view.c (invisible_destroyed): Ditto.
* gui/e-week-view.c (invisible_destroyed): Ditto.
svn path=/trunk/; revision=20329
2003-03-17 Hans Petter Jansson <hpj@ximian.com>
Fixes#39757
* gui/dialogs/alarm-page.c (sensitize_buttons): Somehow this code
reverted to thinking it was dealing with a GtkCList, when in reality
it's a GtkTreeView. Fix that, so the buttons are sensitized correctly.
svn path=/trunk/; revision=20328
2003-03-17 Hans Petter Jansson <hpj@ximian.com>
Fixes#39736
* gui/e-day-view.c: Reduce the size of the large-digits font so it's
en par with the one in 1.2.
svn path=/trunk/; revision=20327
2003-03-14 Rodrigo Moya <rodrigo@ximian.com>
Fixes#39740
* gui/e-meeting-model.c (is_cell_editable): check row number is valid
before using it as index for the GPtrArray.
2003-03-14 Rodrigo Moya <rodrigo@ximian.com>
Fixes#39356
* gui/Makefile.am:
* gui/tasks-migrate.[ch]: removed tasks migration obsolete stuff.
* gui/calendar-component.c (owner_set_cb): don't call tasks_migrate.
svn path=/trunk/; revision=20301
2003-03-13 Rodrigo Moya <rodrigo@ximian.com>
* pcs/query-backend.c (query_backend_new): use a weak ref instead
of connecting to backend's "destroy" signal.
(backend_destroyed_cb, query_destroyed_cb): changed to be weak
reference callbacks.
svn path=/trunk/; revision=20271
2003-03-12 Rodrigo Moya <rodrigo@ximian.com>
* gui/dialogs/save-comp.[ch] (save_component_dialog): corrected
button ordering and changed the return type to be a GtkResponseType.
* gui/dialogs/comp-editor.c (prompt_to_save_changes): adapted to
changes in save_component_dialog.
svn path=/trunk/; revision=20261
2003-03-09 Rodrigo Moya <rodrigo@ximian.com>
* gui/alarm-notify/alarm-notify.c (alarm_notify_add_calendar): if we
already have the client loaded, don't remove it, just increment its
reference count.
* gui/alarm-notify/alarm-queue.c (remove_queued_alarm): added new
argument to specify whether we want the component's structure removed
if no more alarms exist, and only free the structure if TRUE.
(remove_alarms): added same new argument and pass it over to
remove_queued_alarm.
(remove_comp, obj_updated_cb): passed new argument to remove_alarms.
(procedure_notification): passed new argument to remove_queued_alarm.
(obj_removed_cb): set all freed pointers to NULL.
(notify_dialog_cb): only remove the alarm if the pointers are not NULL.
svn path=/trunk/; revision=20232
2003-03-07 Rodrigo Moya <rodrigo@ximian.com>
* gui/alarm-notify/save.c (get_calendars_to_load): create the array
to be returned only once.
svn path=/trunk/; revision=20217
2003-03-06 Rodrigo Moya <rodrigo@ximian.com>
* gui/alarm-notify/alarm-notify-dialog.[ch]
(alarm_notify_dialog_disable_buttons): new function.
(alarm_notify_dialog): made it return a pointer to the dialog structure.
* gui/alarm-notify/alarm-queue.c (remove_alarms, remove_comp): splitted
alarm removal out of remove_comp.
(obj_updated_cb): remove the component only when needed. In normal
updates, just update the internal structure.
(edit_component): don't get a CompQueuedAlarms as argument, since it
might be removed.
(on_dialog_obj_updated_cb, on_dialog_obj_removed_cb): callbacks for
modifications during dialog display.
(notify_dialog_cb): disconnect from "obj_*ed" signals and call
edit_component with the new set of arguments.
(display_notification): added more data to the closure structure.
svn path=/trunk/; revision=20185
2003-03-05 Rodrigo Moya <rodrigo@ximian.com>
Fixes#31382
* gui/e-meeting-model.c (async_read): don't assume the buffer is
always full, but use GNOME_VFS_ERROR_EOF instead for knowing when
the read has finished.
svn path=/trunk/; revision=20183
2003-03-05 JP Rosevear <jpr@ximian.com>
* gui/apps_evolution_calendar.schemas: fix defaults and
descriptions to match what calendar-config wants them to be
svn path=/trunk/; revision=20173
2003-03-05 JP Rosevear <jpr@ximian.com>
* gui/e-itip-control.c (class_init): override finalize, not
destroy
(start_calendar_server): take itip as a param and gtk_main_quit if
it gets destroyed while we are waiting for the cal client to load
(start_default_server): ditto
(get_servers): take itip as a param and don't load if we've been
destroyed, check for an except when retrieving the folder list
(init): ref the html control
(destroy): mark ourselves as destroyed
(finalize): clean up, unref html control
(write_html): if the html widget has been destroyed, don't write
anything out
(show_current_todo): pass extra param
(show_current): ref/unref the itip control to avoid finalization
while
we are working, pass extra param
(button_selected_cb): pass extra param
(object_requested_cb): ditto
svn path=/trunk/; revision=20171
2003-03-04 JP Rosevear <jpr@ximian.com>
* gui/dialogs/meeting-page.c (meeting_page_fill_widgets): don't
let the user change to an email organizer if the back end is not
an email addres
svn path=/trunk/; revision=20162
2003-02-11 JP Rosevear <jpr@ximian.com>
Fixes#37881
* gui/e-meeting-model.c (process_section): if the attendee is the
empty string, try to get the email
svn path=/trunk/; revision=20161
2003-02-11 JP Rosevear <jpr@ximian.com>
Fixes#37881
* gui/e-meeting-model.c (process_section): if the attendee is the
empty string, try to get the email
svn path=/trunk/; revision=20160
2003-03-04 JP Rosevear <jpr@ximian.com>
Fixes#37806, #37697
* gui/e-itip-control.c (e_itip_control_set_data): if the text is
null or the empty string, just clear the widget
(init): set the html widget to initially be blank
svn path=/trunk/; revision=20155
2003-03-04 JP Rosevear <jpr@ximian.com>
* pcs/cal.c (impl_Cal_get_ldap_attribute): implement
* pcs/cal-backend.h: add virtual method
* pcs/cal-backend.c (cal_backend_get_ldap_attribute): call
get_ldap_attribute_method
* pcs/cal-backend-file.c (cal_backend_file_class_init): overrid
get_ldap_attribute method
* idl/evolution-calendar.idl: add getLdapAttribute method
* gui/e-meeting-model.c (process_section): take simple card list
as arg and try to use the ldap attribute (if any) as the attendee,
else use the email address
(select_names_ok_cb): get the simple card list
* cal-client/cal-client.h: add proto
* cal-client/cal-client.c (cal_client_init): init ldap_attribute
to NULL
(cal_client_destroy): free ldap_attribute
svn path=/trunk/; revision=20154
2003-03-04 JP Rosevear <jpr@ximian.com>
Partially Fixes#23606 (from Jack Jia <jack.jia@sun.com>)
* gui/dialogs/schedule-page.c (update_time): handle no end date if
the start is date only
* gui/dialogs/event-page.c (update_time): ditto
svn path=/trunk/; revision=20146
2003-03-04 JP Rosevear <jpr@ximian.com>
Merging in 1.2 stuff
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=20142
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
2003-03-01 Hans Petter Jansson <hpj@ximian.com>
* Makefile.am: Do importers after the other dirs, as it relies on
generated files from there. This is still not optimal... Should
probably introduce dependencies.
svn path=/trunk/; revision=20116
* gui/dialogs/Makefile.am: build libcal-dialogs as an uninstalled
shared library
($(IDL_GENERATED_H), etc): Only generate
Evolution-Addressbook-SelectNames.h, not the corresponding .c
files, or we'll get duplicate symbol errors trying to link this
into libevolution_calendar.la
* gui/Makefile.am (libevolution_calendar_la_LIBADD): Update for
that (and eliminate libtool portability warnings)
svn path=/trunk/; revision=20114