diff options
-rw-r--r-- | calendar/ChangeLog | 1452 | ||||
-rw-r--r-- | calendar/gui/e-week-view.c | 28 |
2 files changed, 32 insertions, 1448 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 723e941b45..6446884d96 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,11 @@ +2004-07-23 JP Rosevear <jpr@ximian.com> + + Fixes #61571 + + * gui/e-week-view.c (e_week_view_start_editing_event): if the + event moves, find it again using the model data as the invariant + and then find the span again + 2004-07-23 JP Rosevear <jpr@novell.com> Fixes #61760 @@ -7332,1446 +7340,4 @@ 2003-09-04 Rodrigo Moya <rodrigo@ximian.com> - * gui/e-day-view.c (process_component): - * gui/e-week-view.c (process_component): dont expand recurrences, - since they are now expanded by the backends. - -2003-09-02 JP Rosevear <jpr@ximian.com> - - * gui/tasks-control.c (sensitize_commands): adapt to cal-client - threaded sync api changes - - * gui/itip-utils.c (itip_organizer_is_user): ditto - - * gui/gnome-cal.c (gnome_calendar_purge): ditto - - * gui/e-meeting-model.c (process_section): ditto - - * gui/e-calendar-table.c (e_calendar_table_show_popup_menu): ditto - - * gui/e-cal-view.c (e_cal_view_create_popup_menu): ditto - - * gui/calendar-commands.c (sensitize_calendar_commands): ditto - (sensitize_taskpad_commands): ditto - - * gui/dialogs/task-editor.c (set_menu_sens): ditto - - * gui/dialogs/meeting-page.c (meeting_page_construct): ditto - - * gui/dialogs/event-editor.c (set_menu_sens): ditto - - * gui/dialogs/alarm-page.c (add_clicked_cb): ditto - - * conduits/calendar/calendar-conduit.c (pre_sync): convert to - cal_client api changes - - * conduits/todo/todo-conduit.c (pre_sync): ditto - - * cal-client/client-test.c (list_uids): match new error handling - - * cal-client/cal-marshal.list: marshallers - - * cal-client/cal-listener.[hc]: emit signals for corba listener - callbacks - start with is_read_only, get_static_capabilities, - get_cal_address, get_ldap_attribute, open, remove and object_list - - * cal-client/cal-client.h: move the status enum away from here, - update protos to new thread sync api standard - - * cal-client/cal-client.c: the listener emits signals instead of - using callback functions now and we return booleans + GError in - outs for results - (e_calendar_error_quark): for GError handling - (cal_read_only_cb): handle listener op callback - (cal_cal_address_cb): ditto - (cal_alarm_address_cb): ditto - (cal_ldap_attribute_cb): ditto - (cal_static_capabilities_cb): ditto - (cal_opened_cb): ditto - (cal_removed_cb): ditto - (cal_object_list_cb): ditto - - * cal-client/cal-client-types.h: add GError stuff - - * cal-client/Makefile.am: build glib marshal stuff - - * pcs/query.c (backend_opened_cb): comment out some break - temporarily - - * pcs/cal.h: add protos - - * pcs/cal.c (impl_Cal_open): just call the backend method, it will - handle the notification - (impl_Cal_remove): ditto - (impl_Cal_isReadOnly): ditto - (impl_Cal_getCalAddress): ditto - (impl_Cal_getAlarmEmailAddress): ditto - (impl_Cal_getLdapAttribute): ditto - (impl_Cal_getStaticCapabilities): ditto - (impl_Cal_getObjectList): simplify - (cal_new): set poa to be threaded - (cal_notify_read_only): notification utils - (cal_notify_cal_address): ditto - (cal_notify_alarm_email_address): ditto - (cal_notify_ldap_attribute): ditto - (cal_notify_static_capabilities): ditto - (cal_notify_open): ditto - (cal_notify_remove): ditto - (cal_notify_object_list): ditto - - * pcs/cal-factory.c (impl_CalFactory_getCal): dup the key and the - object - (cal_factory_new): set poa to be threaded - - * pcs/cal-backend.h: update vmethods and protos - - * pcs/cal-backend.c (cal_backend_get_cal_address): we no longer - return anything - the callee is responsible for notification - (cal_backend_get_alarm_email_address): ditto - (cal_backend_get_ldap_attribute): ditto - (cal_backend_get_static_capabilities): ditto - (cal_backend_open): ditto - (cal_backend_remove): ditto - - * pcs/cal-backend-file.h: update inheritance - - * pcs/cal-backend-file.c: inherit from CalBackendSync and make - is_read_only, get_static_capabilities, get_cal_address, get_ldap_attribute, open and - remove match - - * pcs/Makefile.am: build new files - -2003-09-02 JP Rosevear <jpr@ximian.com> - - * idl/evolution-calendar.idl: make all listener callbacks one ways - -2003-09-02 Rodrigo Moya <rodrigo@ximian.com> - - * pcs/cal-backend-file.c (match_recurrence_sexp, match_object_sexp): - new callbacks for g_hash_table_foreach in get_object_list. - (cal_backend_file_get_object_list): don't use the priv->comp list - to check the components, use the hash table, which contains all - the recurrences already expanded. - (add_component): only expand recurrences for recurrent components. - -2003-09-01 Andrew Wu <Yang.Wu@sun.com> - - * gui/e-day-view.c: - (e_day_view_change_event_end_time_up): - (e_day_view_change_event_end_time_down): Use - "ctrl+shift+alt+Up/Down" to change the end time of the editing - event. - -2003-08-29 Rodrigo Moya <rodrigo@ximian.com> - - * pcs/cal-backend-file.c (lookup_component): take into account the 'rid' - argument. - (get_rid_string): new function to convert the recurrence ID to string. - (add_recurrence_to_object): callback for cal_recur_generate_instances. - (add_component): expand recurrences and g_strdup the hash's key. - (free_cal_component): free also the hash's key. - -2003-08-28 Hans Petter Jansson <hpj@ximian.com> - - * gui/alarm-notify/alarm-queue.c (tray_icon_blink_cb) - (display_notification): Use images that come with Evolution instead - of unreleased stock, for now. - -2003-08-28 Hans Petter Jansson <hpj@ximian.com> - - * gui/alarm-notify/util.[ch]: Added alarm-notify utils. - - * gui/alarm-notify/Makefile.am: Added alarm-notify utils. - - * gui/alarm-notify/alarm-notify-dialog.c (timet_to_str_with_zone): - Move to util.c. - - * gui/alarm-notify/alarm-queue.c (notify_dialog_cb) - (on_dialog_removed_cb) - (notify_dialog_cb) - (tray_icon_destroyed_cb) - (tray_icon_clicked_cb) - (tray_icon_blink_cb) - (display_notification): Add Rodrigo Moya's code for tray icon - notification of appointments, with some fixes and blink code by me. - Requires HEAD gnome-icon-theme for now. - -2003-08-27 Hans Petter Jansson <hpj@ximian.com> - - Fixes #29032. - - * gui/dialogs/task-details-page.c (status_changed): When task status - is set to "In Progress", set percent complete to 50% only if it was - previously set to 0% or 100%. - -2003-08-27 Bolian Yin <bolian.yin@sun.com> - - * gui/Makefile.am use libevolution-calendar-a11y instead of libevolution-a11y. - -2003-08-26 Jack Jia <jack.jia@sun.com> - - ** Fixes #47863. - - * gui/alarm-notify/alarm-notify.c (AlarmNotify_removeCalendar): set - the initial value of lc_ptr and orig_str_ptr to NULL to avoid crash. - - -2003-08-26 Rodrigo Moya <rodrigo@ximian.com> - - * idl/evolution-calendar.idl: QueryListener::notifyObjUpdated now gets - a sequence of CalObj's. - - * pcs/query.c (add_component): send the whole object to the listener, - not just the UID. Improved the way the listeners are notified, by allocating - a CORBA sequence to be used for all listeners, not one for each. - (match_component): pass the CalComponent to add_component, not only the UID. - (start_cached_query_cb): send the whole object to the listener. - - * cal-client/cal-query.[ch]: changed argument names for "obj_updated" - signal. - (obj_updated_cb): pass the calobj's, not uid's. - - * gui/e-tasks.c (query_obj_updated_cb): - * gui/gnome-cal.c (dn_query_obj_updated_cb, purging_obj_updated_cb): - * gui/e-cal-model.c (query_obj_updated_cb): we now get the object's - string representation instead of the UID. - -2003-08-25 Rodrigo Moya <rodrigo@ximian.com> - - * cal-client/cal-client.c (cal_client_get_object): added a 'rid' argument - to match the IDL method. - - * conduits/calendar/calendar-conduit.c (local_record_from_uid): - * conduits/todo/todo-conduit.c (local_record_from_uid): - * gui/comp-editor-factory.c (edit_existing): - * gui/comp-util.c (cal_comp_is_on_server): - * gui/e-cal-model.c (query_obj_updated_cb): - * gui/e-itip-control.c (find_server, get_real_item, update_attendee_status): - * gui/gnome-cal.c (dn_query_obj_updated_cb, purging_obj_updated_cb): - * gui/dialogs/comp-editor.c (obj_updated_cb): adapted to changes in - cal_client_get_object(). - -2003-08-23 Rodrigo Moya <rodrigo@ximian.com> - - * pcs/query-backend.c (object_updated_cb): - * pcs/cal-backend.c (cal_backend_get_type_by_uid): use 'rid' parameter - where appropriate. - - * pcs/cal-backend-file.c (check_dup_uid): removed unused variables. - (cal_backend_file_compute_changes_foreach_key): pass a NULL 'rid' - to cal_backend_get_object(). - (lookup_component): get a 'rid' argument also. - (cal_backend_file_cancel_object, cal_backend_file_remove_object): - pass correct number of parameters to lookup_component(). - -2003-08-22 Rodrigo Moya <rodrigo@ximian.com> - - * idl/evolution-calendar.idl: use UID/RID pairs to identify objects. - - * pcs/cal.c (impl_Cal_getObject): added 'rid' parameter. - - * pcs/cal-backend.c (cal_backend_get_object): added 'rid' parameter. - (cal_backend_get_object_component): ditto. - (get_object): ditto. - - * pcs/cal-backend-file.c (cal_backend_file_get_object_component): - added 'rid' parameter. - (lookup_component): added 'rid' parameter and made it search for the - recurrence when that parameter is not NULL. - (cal_backend_file_get_alarms_for_object, cal_backend_file_update_object): - adapted to changes in lookup_component(). - -2003-08-22 Frederic Crozat <fcrozat@mandrakesoft.com> - - * gui/alarm-notify/notify-main.c: (main): - Ensure we get UTF-8 strings from gettext. - -2003-08-22 Bolian Yin <bolian.yin@sun.com> - - Fixes #47779 - - * gnome-cal.c (gnome_calendar_get_visible_time_range): fix the return value bug. - -2003-08-21 Rodrigo Moya <rodrigo@ximian.com> - - * cal-client/cal-client.[ch] (cal_client_send_object): use a 'char **' - for the 'error_msg' argument, instead of a fixed size string. - - * gui/itip-utils.c (comp_server_send): pass the correct parameter to - cal_client_send_object. - -2002-08-20 Hans Petter Jansson <hpj@ximian.com> - - * gui/e-itip-control.c (start_defalt_server): Rename to - start_default_server_async () and don't run a nested main loop. Let - the caller deal with the client object and signals. - (default_server_started_cb): Implement. Async signal handler for - 'cal_opened' signal, does the embedding. - (object_requested_cb): Rewritten to work asynchronously, and finish - the embedding when default_server_started_cb() is called. - -2003-08-20 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-calendar-table.c (setup_popup_icons): new function to set icons - on the popup menu items. - (e_calendar_table_show_popup_menu): call setup_popup_icons. - - * gui/e-cal-view.c (setup_popup_icons): set more icons for the - popup menu. - -2003-08-20 Bolian Yin <bolian.yin@sun.com> - - * gui/Makefile.am : Add a11y dependency. - * gui/calendar-commands.c (calendar_get_text_for_folder_bar_label) - * gui/e-cal-view.c: Add two new events: "event_changed" and "event_added" - * gui/e-day-view.c (e_day_view_class_init): init a11y. - (e_day_view_find_event_from_item): make it public from private - (e_day_view_update_event_cb): emit "event_changed" signal - (e_day_view_reshape_day_event): emit "event_added" signal - (e_day_view_reshape_long_event): emit "event_added" signal - * gui/e-week-view.c (e_week_view_class_init): init a11y. - (e_week_view_find_event_from_item): make it public from private - (e_week_view_update_event_cb): emit "event_changed" signal - (e_week_view_reshape_event_span): emit "event_added" signal - * gui/gnome-cal.c (gnome_calendar_class_init): init a11y. - (gnome_calendar_get_e_calendar_widget), - (gnome_calendar_get_search_bar_widget), - (gnome_calendar_get_view_notebook_widget): new functions - - -2003-08-20 Rodrigo Moya <rodrigo@ximian.com> - - * pcs/query-backend.c (foreach_uid_cb): use the icalcomponent - to call icalcomponent_get_uid, not the string. - -2003-08-20 Rodrigo Moya <rodrigo@ximian.com> - - * pcs/cal-backend-file.c: store objects by UID and RID. - (free_object): new function to free the CalBackendFileObject structure. - (cal_backend_file_dispose): use free_object callback to remove the - objects in the comp_uid_hash. - (lookup_component): search correctly the component in the new hash - table organizarion. - (check_dup_uid): ditto. - (add_component): ditto. - (remove_component): ditto. - -2003-08-19 JP Rosevear <jpr@ximian.com> - - * gui/gnome-cal.c (setup_widgets): set up models here - (gnome_calendar_construct): not here - - * conduits/calendar/calendar-conduit.c - (e_calendar_context_destroy): we have a list of calcomponents - rather than uids now - (process_multi_day): build a list of components rather than uids - (pre_sync): use get_object_list instead of getting uids - (for_each): create local records from calcomponents - - * conduits/todo/todo-conduit.c: as above - - * gui/print.c (instance_cb): mark as true if we found an instance - (print_month_small): see if atleast one instance exists in a - slight different way - - * cal-client/client-test.c (list_uids): use get_object_list - - * cal-client/cal-listener.h: update protos - - * cal-client/cal-listener.c (cal_listener_class_init): set object - list callback implementation - (impl_notifyObjectListRequested): implement - (cal_listener_construct): take object list callback function - (cal_listener_new): ditto - - * cal-client/cal-client.h: update protos, add status - - * cal-client/cal-client.c (e_calendar_new_op): create new op - (e_calendar_get_op): retrieve current op - (e_calendar_free_op): free the op - (e_calendar_remove_op): clear current op - (cal_client_init): create new mutex - (cal_client_finalize): destroy mutex - (build_object_list): build list of icalcomponents - (cal_object_list_cb): handle getObjectList response - (real_open_calendar): pass extra listener arg - (cal_client_get_object_list): implement using thread safe mutex - locking - (cal_client_get_object_list_as_comp): return calcomponents instead - of icalcomponents - (cal_client_generate_instances): just get the object list - no - need to make it atomic since get_object_list is already atomic - - * pcs/query.c (query_finalize): free new sexp class - (parse_sexp): use new sexp class - (match_component): ditto - - * pcs/query-backend.c (foreach_uid_cb): use icalcomponent to - extract uid - (query_backend_new): get all objects using object list call - - * pcs/cal.c (impl_Cal_getObjectList): implement - (cal_class_init): adjust for idl method changes - - * pcs/cal-backend.h: update vmethods, add proto - - * pcs/cal-backend.c (cal_backend_class_init): remove get_uids and - get_objects_in_range vmethods, add get_object_list vmethod - (cal_backend_get_object_list): call through to vmethod implementation - - * pcs/cal-backend-object-sexp.[hc]: nice class to represent a sexp - and search cal components - - * pcs/cal-backend-file.c (cal_backend_file_class_init): remove - get_uids and get_objects_in_range calls and set get_object_list - call - (cal_backend_file_get_object_list): implement - (create_user_free_busy): use sexp ops to implement - (cal_backend_file_compute_changes): just iterate over the - component list rather than fetching uids - - * pcs/Makefile.am: build new files - - * idl/evolution-calendar.idl: make opening a oneway call, add - getObjectList call, remove getUIDS and getObjectsInRange call - - both can be done with getObjectList; make listener callbacks - oneway - -2003-08-19 Rodrigo Moya <rodrigo@ximian.com> - - * gui/gnome-cal.c (gnome_calendar_purge): don't leak the client list. - (gnome_calendar_destroy): disconnect from all callbacks on all - loaded clients. - -2003-08-19 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model-tasks.c (ecmt_get_color_for_component): use - "black" for normal tasks, since the light colors from the palette - are too light. - - * gui/gnome-cal.c (gnome_calendar_purge): don't leak the client list. - (gnome_calendar_destroy): disconnect from all callbacks on all - loaded clients. - -2003-08-18 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-day-view.c: fixed the problem with a new event being - created for each keystroke. - (e_day_view_add_event): don't create a new default component, use - the one we get as parameter. - (e_day_view_do_key_press): get the UID from the icalcomponent. - - * gui/e-week-view.c (e_week_view_add_event, e_week_view_do_key_press): - same as e-day-view.c - -2003-08-18 Ettore Perazzoli <ettore@ximian.com> - - * gui/calendar-component.c (impl_createControls): Oops, pass - [NULL, NULL] to gtk_scrolled_window_new(). - -2003-08-18 Ettore Perazzoli <ettore@ximian.com> - - * gui/main.c (factory): Ref the object from - calendar_component_peek() before returning it. - -2003-08-17 Ettore Perazzoli <ettore@ximian.com> - - * gui/control-factory.h: #include <bonobo/bonobo-control.h>. - - * gui/Makefile.am (libevolution_calendar_la_LIBADD): Link to - libeutil. - - * gui/e-calendar-table.c (e_calendar_table_set_status_message): - Don't use the global_shell_client. - - * gui/main.c (factory): Call calendar_component_peek() for the - GNOME_Evolution_Calendar_Component OAFIID. - - * gui/GNOME_Evolution_Calendar.server.in.in: Set up the - GNOME_Evolution_Calendar_Component server and rename - GNOME_Evolution_Calendar_Factory to - GNOME_Evolution_Calendar_Factory_2. - * gui/main.c: Updated IDs accordingly. - - * gui/e-meeting-time-sel.c (e_meeting_time_selector_construct): - Use calendar_component_peek_config_directory() instead of - evolution_dir. - * gui/gnome-cal.c (setup_widgets): Likewise. - (gnome_calendar_destroy): Likewise. - * gui/dialogs/meeting-page.c (meeting_page_construct): Likewise. - - * gui/gnome-cal.c (gnome_calendar_open): #if 0 some code for - figuring out where the task list is. - - * gui/calendar-component.c: New file. - * gui/calendar-component.h: New file. - - * gui/itip-utils.c (itip_addresses_get): Unref the GConf client - from gconf_client_get_default. - -2003-08-15 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model.c (ecm_get_color_for_component): use tigert's - new color palette. - (cal_removed_cb): when a client is removed, remove it from the model. - (backend_died_cb): remove it also when the backend dies. - (add_new_client): connect to new signals for CalClient's. - -2003-08-15 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model.c (e_cal_model_finalize): don't unref the - 'accounts' field, since it is internal to itip-utils.c. - - * gui/alarm-notify/alarm-notify.c (alarm_notify_add_calendar): - initialize all fields of the LoadedClient struct before calling - cal_client_open_calendar(), since the "cal_opened_cb" signal is - now emitted within it. - -2003-08-14 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model.[ch] (e_cal_model_free_component_data): new - function. - - * gui/e-cal-view.h: added 'allocated_comp_data' field to the - ECalViewEvent structure. - - * gui/e-day-view.c (e_day_view_add_event): allocate the event's - ECalModelComponent if it hasn't been set. - (e_day_view_update_event_cb, e_day_view_remove_event_cb, - e_day_view_free_event_array): if the ECalModelComponent has - been allocated by the view, free it here. - - * gui/e-week-event.c (e_week_view_add_event, - e_week_view_update_event_cb, e_week_view_remove_event_cb, - e_week_view_free_events): same as EDayView. - -2003-08-14 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model.c (e_cal_model_create_component_with_defaults): - use the default client to call cal_comp_*_new_with_defaults, and - if no client is available, just create an empty icalcomponent. - - * gui/e-cal-view.c (e_cal_view_init): create an empty model. - - * gui/e-week-view.c (e_week_view_add_event): use the event's client. - -2003-08-13 Rodrigo Moya <rodrigo@ximian.com> - - * gui/gnome-cal.c (gnome_calendar_open): unref the client if there - is an error. - (update_query): set status bar messages for progress. - (update_query_timeout): re-enabled. - (client_cal_opened_cb): install timeout handler for the query updates. - - * gui/e-cal-view.c (e_cal_view_set_model): connect to all appropriate - signals on the model, to be called for every change. - (model_row_changed_cb, model_rows_changed_cb): new model callbacks. - - * gui/e-week-view-event-item.c (e_week_view_event_item_draw): colorize - the background for multiple days events. - -2003-08-13 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model.c (ecm_append_row, ecm_get_color_for_component): - * gui/e-cal-model-tasks.c (ecmt_get_color_for_component): merged - missing bith from calendar-views-with-model branch. - -2003-08-13 JP Rosevear <jpr@ximian.com> - - * cal-client/cal-client.c (real_open_calendar): set the priv->cal - pointer in a slightly different spot so we have it in the call - back - - * gui/e-cal-model.c (e_cal_model_get_client_list): merge this in - properly - -2003-08-13 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model.c (ecm_get_color_for_component): assign the colors - based on the URI, which is stored in a common place for all models. - Thus different views will use the same color for the same calendar. - - * gui/e-week-view-event-item.c (e_week_view_event_item_draw): draw - a filled rectangle and a black border around it for one-day events. - - * gui/e-day-view-top-item.c (e_day_view_top_item_draw_long_event): - fill the rectangle for the item with its associated color. - -2003-08-13 Rodrigo Moya <rodrigo@ximian.com> - - * gui/gnome-cal.c (gnome_calendar_open): unref the client if there - is an error. - (update_query): set status bar messages for progress. - (update_query_timeout): re-enabled. - (client_cal_opened_cb): install timeout handler for the query updates. - - * gui/e-cal-view.c (e_cal_view_set_model): connect to all appropriate - signals on the model, to be called for every change. - (model_row_changed_cb, model_rows_changed_cb): new model callbacks. - - * gui/e-week-view-event-item.c (e_week_view_event_item_draw): colorize - the background for multiple days events. - -2003-08-13 JP Rosevear <jpr@ximian.com> - - * cal-client/client-test.c (create_client): there is no more - object updated signal - - * cal-client/cal-listener.c: clean up comment - - * cal-client/cal-client.c (cal_client_class_init): remove - obj_updated and obj_removed signals - - * cal-client/cal-client.h: ditto - -2003-08-12 JP Rosevear <jpr@ximian.com> - - * pcs/cal-backend.h: remove get_uri vmethod - - * pcs/cal-backend.c (cal_backend_class_init): remove get_uri - vmethod init - - * pcs/cal-backend-file.c (cal_backend_file_class_init): no longer - a get uri vmethod - (cal_backend_file_get_uri): remove implementation of above - -2003-08-12 JP Rosevear <jpr@ximian.com> - - * cal-client/client-test.c (main): use tmp uris - - * cal-client/cal-listener.h: update protos - - * cal-client/cal-listener.c (cal_listener_init): init removed - function - (cal_listener_finalize): clear removed function - (impl_notifyCalOpened): take file status - (impl_notifyCalRemoved): implement - (cal_listener_construct): take remove function arg - (cal_listener_new): ditto - - * cal-client/cal-client.h: update protos, add remove status - - * cal-client/cal-client.c - (cal_client_remove_status_enum_get_type): add remove status type - (cal_client_class_init): add removed signal - (cal_opened_cb): can no longer get unsupported exception here - (cal_removed_cb): emit removed status - (real_open_calendar): pass removed callback function to listener - (get_fall_back_uri): no longer append tasks.ics or calendar.ics - (cal_client_remove_calendar): new c wrapper for corba function - - calendar must be open currently - - * pcs/query.c (backend_opened_cb): only disconnect the open - callback - (backend_removed_cb): handle calendar removal - (query_construct): listen for remove signal as well - - * pcs/cal.h: cal no longer takes uri during construction - - * pcs/cal.c (backend_to_listener_status): convert backend to corba - status code - (impl_Cal_open): backend open no longer takes uri, use above to - send back status - (impl_Cal_remove): implement - (cal_construct): we no longer track the uri - (cal_finalize): ditto - (cal_class_init): set remove epv method - - * pcs/cal-factory.c (impl_CalFactory_getCal): instantiate backend - with uri and kind properties - - * pcs/cal-backend.h: list file status enum, add protos - - * pcs/cal-backend.c (cal_backend_set_property): implement object - properties - (cal_backend_get_property): ditto - (cal_backend_class_init): add properties vmethods and uri, kind - properties, removed signal - (cal_backend_get_uri): don't get the uri from the backend - (cal_backend_get_kind): get the kind from the backend - (cal_backend_open): adapt to new open call, no uri passed in - (cal_backend_remove): call through to remove implementation - (cal_backend_opened): use new file status - (cal_backend_removed): emit removed signal - - * pcs/cal-backend-file.h: update protos - - * pcs/cal-backend-file.c (cal_backend_file_class_init): override - remove vmethod - (cal_backend_file_init): default file name to calendar.ics - (cal_backend_file_set_file_name): accessor for filename tacked on - to uri - (cal_backend_file_get_file_name): ditto - (open_cal): return "file" type status codes - (create_cal): ditto - (get_uri_string): construct the full uri string - (cal_backend_file_open): use above - (cal_backend_file_remove): implement - - * pcs/cal-backend-file-todos.c (cal_backend_file_todos_init): set - the file name to tasks.ics - - * pcs/cal-backend-file-events.c (cal_backend_file_events_init): - set the file name to calendar.ics - - * cal-util/cal-util.c (cal_util_expand_uri): just return a copy of - the uri now - - * idl/evolution-calendar.idl: convert OpenStatus to FileStatus so - remove() can use it as well - - * gui/gnome-cal.c (gnome_calendar_open): just open the default - folder in all cases - -2003-08-12 Rodrigo Moya <rodrigo@ximian.com> - - * cal-util/cal-util.[ch] (cal_util_component_has_alarms): new function. - - * gui/gnome-cal.[ch]: - * gui/goto.c: - * gui/itip-bonobo-control.c: - * gui/print.c: - * gui/e-week-view.[ch]: - * gui/e-day-view.[ch]: lots of fixes to make all compile with no - warnings. - -2003-08-12 Rodrigo Moya <rodrigo@ximian.com> - - * cal-util/cal-util.[ch] (cal_util_component_has_organizer): - new function. - - * gui/e-day-view-main-item.c: - * gui/e-day-view-top-item.c: - * gui/e-week-view-event-item.c: - * gui/e-week-view.c: adaptated to changes in ECalViewEvent. - - * gui/e-cal-model.[ch] (e_cal_model_get_client_list): new function. - (ecm_append_row): fixed usage of icalcomponent variable. - - * gui/e-cal-view.c (e_cal_view_class_init): removed unused variable. - (selection_received): use default client for pasting from clipboard. - (e_cal_view_cut_clipboard): cut the appointment from its client. - (e_cal_view_copy_clipboard, delete_event, on_save_as, om_print_event, - e_cal_view_delete_selected_occurrence, on_meeting, on_forward, - e_cal_view_create_popup_menu): adapted to changes in ECalViewEvent. - (e_cal_view_delete_selected_event, e_cal_view_delete_selected_events): - pass the ECalViewEvent to delete_event, so that it knows which - CalClient to use. - (on_edit_appointment): pass CalClient and icalcomponent to - gnome_calendar_edit_object. - (on_publish): publish F/B info for all the clients currently loaded - in the view. - (setup_popup_icons): added missing argument to gtk_image_new_from_stock. - - * gui/calendar-commands.c (publish_freebusy_cmd): publish F/B info - for all the clients currently loaded in the view. - (sensitize_calendar_commands): use icalcomponent functions. - - * gui/e-day-view.c: - * gui/comp-editor-factory.c (impl_editExisting): - * gui/calendar-offline-handler.c (backend_cal_opened_online): - * gui/e-alarm-list.c (e_alarm_list_finalize): - * gui/e-cal-model-tasks.c (ecmt_get_color_for_component): - * gui/e-date-time-list.c (e_date_time_list_finalize): - * gui/control-factory.c (get_prop): fixed warnings. - -2003-08-12 Hans Petter Jansson <hpj@ximian.com> - - * gui/calendar-offline-handler.c (impl_dispose): Chain. Prevent - double unrefs. - (impl_finalize): Chain. - - * gui/e-alarm-list.c (finalize): Chain. - - * gui/e-comp-editor-registry.c (destroy): Chain. Prevent double frees. - (editor_destroy_cb): Don't crash if we get the destroy signal twice. - - * gui/e-date-time-list.c (e_date_time_list_finalize): Chain. - - * gui/e-meeting-attendee.c (finalize): Chain. - - * gui/e-meeting-model.c (finalize): Chain. - -2003-08-12 Andrew Wu <Yang.Wu@sun.com> - - * gui/e-day-view.c - (e_day_view_change_duration_to_start_of_work_day): - In DayView, Shift+Home, Change the duration to the time - that begins the current work day. - (e_day_view_change_duration_to_end_of_work_day): - In DayView, Shift+End, Change the duration to the time - that ends the current work day - -2003-08-12 Hans Petter Jansson <hpj@ximian.com> - - * gui/e-itip-control.c (html_destroyed): - (init): - (write_html): Add destroy chaining. - -2003-08-12 Andrew Wu <Yang.Wu@sun.com> - - * gui/e-week-view.c - (e_week_view_on_key_up): - (e_week_view_on_key_down): - (e_week_view_on_key_left): - (e_week_view_on_key_right): - In the WeekView, Navigation through days with arrow keys. - -2003-08-12 Harry Lu <harry.lu@sun.com> - - ** fixes #47464. - - * gui/dialogs/meeting-page.c: (get_widgets): The Organizer's value - need not match one of the values in the list. - -2003-08-12 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-day-view.c (e_day_view_update_query): - * gui/e-week-view.c (e_week_view_update_query): remove the status bar - messages when the operation is finished. - - * gui/e-day-view-main-item.c (e_day_view_main_item_draw_day_event): - draw a rectangle filled with the color associated with the event's - calendar. - -2003-08-12 Rodrigo Moya <rodrigo@ximian.com> - - * cal-util/cal-util.[ch] (cal_util_component_has_alarms): new function. - - * gui/gnome-cal.[ch]: - * gui/goto.c: - * gui/itip-bonobo-control.c: - * gui/print.c: - * gui/e-week-view.[ch]: - * gui/e-day-view.[ch]: lots of fixes to make all compile with no - warnings. - -2003-08-12 Rodrigo Moya <rodrigo@ximian.com> - - * cal-util/cal-util.[ch] (cal_util_component_has_organizer): - new function. - - * gui/e-day-view-main-item.c: - * gui/e-day-view-top-item.c: - * gui/e-week-view-event-item.c: - * gui/e-week-view.c: adaptated to changes in ECalViewEvent. - - * gui/e-cal-model.[ch] (e_cal_model_get_client_list): new function. - (ecm_append_row): fixed usage of icalcomponent variable. - - * gui/e-cal-view.c (e_cal_view_class_init): removed unused variable. - (selection_received): use default client for pasting from clipboard. - (e_cal_view_cut_clipboard): cut the appointment from its client. - (e_cal_view_copy_clipboard, delete_event, on_save_as, om_print_event, - e_cal_view_delete_selected_occurrence, on_meeting, on_forward, - e_cal_view_create_popup_menu): adapted to changes in ECalViewEvent. - (e_cal_view_delete_selected_event, e_cal_view_delete_selected_events): - pass the ECalViewEvent to delete_event, so that it knows which - CalClient to use. - (on_edit_appointment): pass CalClient and icalcomponent to - gnome_calendar_edit_object. - (on_publish): publish F/B info for all the clients currently loaded - in the view. - (setup_popup_icons): added missing argument to gtk_image_new_from_stock. - - * gui/calendar-commands.c (publish_freebusy_cmd): publish F/B info - for all the clients currently loaded in the view. - (sensitize_calendar_commands): use icalcomponent functions. - - * gui/e-day-view.c: - * gui/comp-editor-factory.c (impl_editExisting): - * gui/calendar-offline-handler.c (backend_cal_opened_online): - * gui/e-alarm-list.c (e_alarm_list_finalize): - * gui/e-cal-model-tasks.c (ecmt_get_color_for_component): - * gui/e-date-time-list.c (e_date_time_list_finalize): - * gui/control-factory.c (get_prop): fixed warnings. - -2003-08-11 Rodrigo Moya <rodrigo@ximian.com> - - * cal-util/cal-util.[ch] (cal_util_component_is_instance, - cal_util_component_has_recurrences, cal_util_component_has_rdates, - cal_util_component_has_rrules, cal_util_event_dates_match): - new functions needed for the CalComponent->icalcomponent - transition. - - * gui/e-day-view.[ch]: - * gui/e-week-view.[ch]: more adaptation to changes in ECalViewEvent. - - * gui/gnome-cal.c (gnome_calendar_edit_object): use icalcomponent's - instead of CalComponent's. - -2003-08-11 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-day-view.c: more adaptation to changes in ECalViewEvent. - (e_day_view_update_event_cb): use an ECalModelComponent, not a - CalComponent. - (process_component): pass an ECalModelComponent to - e_day_view_update_event_cb(). - - * gui/e-week-view.c: more adaptation to changes in ECalViewEvent. - (e_week_view_update_event_cb, e_week_view_reshape_event_span): - set the background color on the event's summary text. - -2003-08-11 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-week-view.c (e_day_view_update_query): no more query - management here. - (query_obj_updated_cb, query_obj_removed_cb, query_query_done_cb, - query_eval_error_cb): removed query signals' callbacks. - (adjust_query_sexp): removed. - (process_component): new function to draw all components from - the model. - - * gui/e-day-view.c: adapted to changes in ECalViewEvent structure. - (e_day_view_update_query): no more query management here. - (query_obj_updated_cb, query_obj_removed_cb, query_query_done_cb, - query_eval_error_cb): removed query signals' callbacks. - (adjust_query_sexp): removed. - (process_component): new function to draw all components from - the model. - -2003-08-11 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-view.c (e_cal_view_destroy): disconnect from signals - on the model. - (e_cal_view_set_model): disconnect from signals on the old model - and connect on the new one. - (model_changed_cb): tell the views to redraw when the model changes. - - * gui/gnome-cal.c (dn_query_obj_updated_cb, gnome_calendar_destroy, - client_categories_changed_cb): removed the 'client' field from the - private structure, so don't use it anymore - (client_cal_opened_cb): if successful, add the CalClient to the - views' model. - (gnome_calendar_construct): don't add the client to the task model, - add it in client_cal_opened_cb(). - (gnome_calendar_get_cal_client): removed. - (gnome_calendar_get_calendar_model): new function. - (gnome_calendar_open): create the CalClient here, to be added to the - views' model in client_cal_opened_cb(). - -2003-08-09 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-view.[ch] (e_cal_view_get_cal_client, - e_cal_view_set_cal_client, e_cal_view_get_query, - e_cal_view_set_query): removed unneeded functions. - (e_cal_view_get_model, e_cal_view_set_model): new functions. - (e_cal_view_destroy): free the model. - (e_cal_view_init): removed sexp initialization. - - * gui/gnome-cal.c (gnome_calendar_set_query): set the - query on the view's model, not on the view. - (gnome_calendar_construct): create the calendar model and associate - it to all the views. - -2003-08-08 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model-calendar.c (ecmc_fill_component_from_model): - implemented new virtual method. - (ecmc_class_init): initialize new virtual method. - -2003-08-08 Rodrigo Moya <rodrigo@ximian.com> - - * cal-client/cal-client.c (cal_client_update_object_with_mod): - cal_client_get_component_as_string_internal expects now a - icalcomponent, not a CalComponent. - - * gui/e-cal-model.h: added fill_component_from_model virtual method. - - * gui/e-cal-model.c (e_cal_model_get_default_client): return - the default URI as per the configuration if we've got that - client loaded. If not, return the first client. - (get_dtstart): retrieve the value from the icalproperty. - (set_summary): implemented correctly. - (set_categories, set_classification, set_description): changed - to really get an ECalModelComponent. - (ecm_append_row): pass the correct arguments to the set_ functions - and call the class' fill_component_from_model method to fill in the - created icalcomponent. - - * gui/e-cal-model-tasks.c (set_due): added missing function. - (ecmt_set_value_at): implemented case for DUE field. - (ecmt_fill_component_from_model): implemented new virtual method. - (ecmt_append_row): removed. - - * gui/e-cal-model-calendar.c (ecmc_append_row): removed. - - * gui/e-calendar-table.c (e_calendar_table_init): initialize - missing fields. Disabled call to g_object_unref on the 'extras' - object, since it causes GLib warnings. Something is wrong here. - -2003-08-08 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model.c (cal_opened_cb): don't call remove_client, - since the client, at this point, hasn't been added anywhere. - (ecm_finalize): don't call e_cal_model_remove_all_clients, since - that function triggers notifications on the model. - (query_obj_updated_cb): free all the date fields. - -2003-08-07 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model.c (ecm_value_at): don't convert to an integer - the return value from get_color. - (ecm_get_color_for_component): use correct GTK 2.x color values. - - * gui/e-calendar-table.c: replace all CAL_COMPONENT_FIELD... - with the correct E_CAL_MODEL_*_FIELD... - -2003-08-07 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model-tasks.c (get_completed, get_due): added - missing implementation. - (ecmt_class_init): initialize missing virtual method. - - * gui/gnome-cal.c (gnome_calendar_construct): fixed typo. - -2003-08-07 Rodrigo Moya <rodrigo@ximian.com> - - * cal-client/cal-client.[ch] (cal_client_get_component_as_string): - * cal-util/cal-util.[ch] (cal_util_add_timezone_from_component): - use icalcomponent's instead of CalComponent's. - - * gui/Makefile.am: - * gui/calendar-model.[ch]: removed old model class. - - * gui/e-calendar-table.[ch]: use ECalModelTasks class instead - of CalendarModel. - (e_calendar_table_set_status_message): new function. - (get_selected_comp): return an ECalModelComponent. - (get_selected_objects): return a list of ECalModelComponent's. - (delete_selected_components): use the CalClient associated - with each component. - (copy_row_cb): adapted to changes in get_selected_comp. - - * gui/e-tasks.c: - * gui/print.c: - * gui/dialogs/comp-editor.c (save_as_cmd): - * gui/e-day-view.c (e_day_view_on_drag_data_get): - * gui/e-cal-view.c (e_cal_view_copy_clipboard, on_save_as): pass - an icalcomponent to cal_util_add_timezones_from_component and - cal_client_get_component_as_string. - - * gui/e-cal-model.[ch] (e_cal_model_set_use_24_hour_format): - (e_cal_model_get_default_client): - (e_cal_model_set_default_category): new functions. - - * gui/e-cal-model-tasks.[ch] (e_cal_model_tasks_mark_task_complete): - new function. - (ecmt_get_color_for_component): chain the call to the parent class - so that it assigns the per-client color to 'normal' tasks. - - * gui/calendar-config.c (calendar_config_configure_e_calendar_table): - call e_cal_model_set_use_24_hour_format. - -2003-08-07 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model.c (ecm_get_color_for_component): use the color - palette from Tuomas. - -2003-08-06 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model.[ch]: removed 'create_component_with_defaults' - virtual method. - (e_cal_component_create_component_with_defaults): - (e_cal_component_get_color_for_component): new functions. - -2003-08-06 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model.[ch] (e_cal_model_set_query): new function. - (e_cal_model_remove_all_clients): implemented. - (remove_client): also remove all objects belonging to the - client being removed. - -2003-08-06 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model.c (get_dtstart, set_dtstart): implemented. - (ecm_value_at, ecm_set_value_at, ecm_duplicate_value, - ecm_free_value, ecm_value_to_string): added case for DTSTART - field. - (free_comp_data): free also the other date values in the - ECalModelComponent struct. - (e_cal_model_date_value_to_string): new function. - - * gui/e-cal-model.h: added new prototypes. - - * gui/e-cal-model-calendar.[ch]: new ECalModel-based class for - containing events. - - * gui/e-cal-model-tasks.c (ecmt_value_to_string): implemented - the case for date fields. - -2003-08-05 Rodrigo Moya <rodrigo@ximian.com> - - * cal-client/cal-client.c (generate_instances_obj_updated_cb): fixed - parameters in call to cal_client_get_object(). - (get_objects_atomatically): same. - - * gui/e-cal-model.[ch]: added "get_color_for_component" virtual method. - (get_color): new function to return the color. It calls the virtual - method of the current class. - (ecm_value_at): return a value for the color and icon columns. - (e_cal_model_class_init): initialize virtual methods. - - * gui/e-cal-model-tasks.c (ecmt_get_color_for_component): implemented - new class' virtual method. - -2003-08-05 Rodrigo Moya <rodrigo@ximian.com> - - * cal-client_/cal-client.c (cal_client_get_default_object): use - correctly the pointer to pointer. - - * gui/e-week-view.c (query_obj_updated_cb): fixed the call to - cal_client_get_object(). - -2003-08-04 Rodrigo Moya <rodrigo@ximian.com> - - * cal-client/cal-client.[ch] (cal_client_get_default_object): - (cal_client_get_object): use icalcomponent instead of CalComponent. - - * gui/e-cal-model.c (get_dtstart): implemented. - (query_obj_updated_cb): - (query_obj_removed_cb): - (query_done_cb): - (query_eval_error_cb): implemented missing functions. - - * gui/calendar-model.c: - * gui/comp-editor-factory.c: - * gui/comp-util.c: - * gui/e-day-view.c: - * gui/e-itip-control.c: - * gui/e-week-view.c: - * gui/gnome-cal.c: - * gui/dialogs/comp-editor.c: - * conduits/todo/todo-conduit.c: - * conduits/calendar/calendar-conduit.c: adapted to changes - in CalClient API. - -2003-08-04 Rodrigo Moya <rodrigo@ximian.com> - - * cal-client/cal-query.[ch] (cal_query_new): added a 'CalClient' - argument to this function. - (cal_query_get_client): new function. - - * cal-client/cal-client.c (cal_client_get_query): added new parameter - in call to cal_query_new (). - -2003-08-01 Lorenzo Gil <lgs@sicem.biz> - - * gui/e-alarm-list.c: added the include <config.h> line at the - beginning to enable gettext. - -2003-08-01 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model.[ch] (e_cal_model_get_component_at): new function. - (ecm_append_row): use the client from the source model. - (e_cal_model_get_timezone, e_cal_model_set_timezone): new functions. - - * gui/e-cal-model-tasks.[ch]: new class for the tasks model. - -2003-07-31 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-model.[ch]: new class, based on CalendarModel to be - an abstract class for calendar models. - - * gui/Makefile.am: added new files to build. - -2003-07-30 Rodrigo Moya <rodrigo@ximian.com> - - * cal-client/cal-client-multi.[ch]: - * cal-client/Makefile.am: removed obsolete code. - -2003-07-30 Ettore Perazzoli <ettore@ximian.com> - - * gui/main.c (factory): Do not depend on global_shell_client being - not NULL for creating the calendar preferences dialog. - - * gui/e-itip-control.c (show_current): Don't call get_servers - anymore [to be fixed]. - (get_servers): #if 0ed out. - (object_requested_cb): Don't create the folder selector button. - - * gui/e-cal-view.c (e_cal_view_set_status_message): Don't create - an activity client. - - * gui/calendar-model.c (calendar_model_set_status_message): Don't - create an activity client. - - * gui/calendar-component.c: Removed global variable - global_shell_client. - (owner_set_cb): Don't set global_shell_client. - (owner_unset_cb): Don't set it here either. - -2003-07-29 Rodrigo Moya <rodrigo@ximian.com> - - Fixes all "alarm daemon doesn't start with session" - - * gui/alarm-notify/notify-main.c (main): use LIBGNOMEUI_MODULE - instead of LIBGNOME_MODULE so that the default session client - is created in gnome_program_init. - -2003-07-29 Harry Lu <harry.lu@sun.com> - - Fixes #46769 - - * gui/dialogs/task-page.c: (task_page_fill_component): Popup a - error dialog if due date time is before start datetime when saving - a task. - -2003-07-29 Bolian Yin <bolian.yin@sun.com> - - Fixes #46847 - - * gui/e-day-view.c (e_day_view_get_next_tab_event, e_day_view_focus): - add day view widget in the tab loop of events. - * gui/e-week-view.c (e_week_view_get_next_tab_event, e_week_view_focus): - add week view widget in the tab loop of events. - - Also: add some comments in gui/e-day-view.c and gui/e-week-view.c - remove two compile warnings in gui/e-day-view.c - -2003-07-24 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-view.[ch] (e_cal_view_delete_selected_occurrence): - new function. - (e_cal_view_get_timezone, e_cal_view_set_timezone): new functions. - (e_cal_view_class_init): added new class' signal. - - * gui/e-week-view.[ch] (e_week_view_delete_occurrence, - e_week_view_delete_occurrence_internal): removed. - (e_week_view_get_timezone): removed. - (e_week_view_set_timezone): renamed to timezone_changed_cb, as - the callback for timezone changes in the parent ECalView. - (e_week_view_on_button_press): call gnome_calendar_new_appointment - instead of the non-existant e_week_view_new_appointment. - - * gui/e-day-view.[ch] (e_day_view_delete_occurrence, - e_day_view_delete_occurrence_internal): removed. - (e_day_view_get_timezone): removed. - (e_day_view_set_timezone): renamed to timezone_changed_cb, as - the callback for timezone changes in the parent ECalView. - - * gui/gnome-cal.c (gnome_calendar_delete_selected_occurrence): - made it call e_cal_view_delete_selected_occurrence. - (gnome_calendar_update_config_settings): call the generic - e_cal_view_set_timezone on all view widgets. - - * gui/e-day-view-top-item.c: - * gui/e-week-view-main-item.c: - * gui/e-day-view-main-item.c: removed mentions to non-existant - structure fields. - -2003-07-24 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-view.h: define ECalViewEvent as the base struct for - the other views. - - * gui/e-day-view.[ch]: EDayViewEvent is now based on ECalViewEvent. - (e_day_view_get_selected_events): made it return a list of - ECalViewEvent's, not CalComponent's, so that we can get more - information about the events. - - * gui/e-week-view.[ch]: EWeekViewEvent is now based on ECalViewEvent. - (e_week_view_get_selected_events): same as e_day_view_get_selected_events. - - * gui/e-cal-view.c (e_cal_view_cut_clipboard, e_cal_view_copy_clipboard, - e_cal_view_delete_selected_event, e_cal_view_delete_selected_events, - on_edit_appointment, on_save_as, on_print_event, on_meeting, - on_forward, e_cal_view_create_popup_menu): - * gui/calendar-commands.c (sensitize_calendar_commands): updated - to read ECalViewEvent's instead of CalComponent's as returned - by e_cal_view_get_selected_events(). - -2003-07-24 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-view.c (delete_event): check the uid before using it. - -2003-07-24 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-day-view.c (e_day_view_delete_event, - e_day_view_delete_event_internal): - * gui/e-week-view.c (e_week_view_delete_event, - e_week_view_delete_event_internal): removed. - - * gui/e-cal-view.[ch] (e_cal_view_delete_selected_event): renamed - from e_cal_view_delete_event_internal. - (e_cal_view_delete_selected_events): new function. - - * gui/gnome-cal.c (gnome_calendar_delete_selection): call - e_cal_view_delete_selected_events(). - - * gui/e-week-view-event-item.c (e_week_view_event_item_get_position, - e_week_view_event_item_button_press): - * gui/e-day-view-top-item.c (e_day_view_top_item_draw_long_event): - * gui/e-day-view-main-item.c (e_day_view_main_item_draw_day_event): - adapted to changes in E*ViewPosition. - -2003-07-24 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-view.c (on_print): added missing cases. - (setup_popup_icons): new function to set up icons for the popup menu. - (e_cal_view_create_popup_menu): call setup_popup_icons. - -2003-07-23 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-view.[ch]: moved the duplicated popup menu code here. - (e_cal_view_create_popup_menu): new function to create the popup - menu for all views. - (on_new_appointment, on_new_event, on_new_meeting, on_new_task, - on_goto_today, on_goto_date, on_edit_appointment, on_print, - on_save_as, on_print_event, on_meeting, on_forward, on_publish, - on_settings, on_delete_appointment, on_cut, on_copy, on_paste, - on_unrecur_appointment): callbacks for the popup menu items. - - * gui/e-week-view.c (e_week_view_on_new_appointment, - e_week_view_new_appointment, e_week_view_on_new_event, - e_week_view_on_new_meeting, e_week_view_on_new_task, - e_week_view_on_goto_today, e_week_view_on_goto_date, - e_week_view_on_edit_appointment, e_week_view_on_print, - e_week_view_on_save_as, e_week_view_on_print_event, - e_week_view_on_meeting, e_week_view_on_forward, - e_week_view_on_publish, e_week_view_on_settings, - e_week_view_on_delete_appointment, - e_week_view_delete_event_internal, e_week_view_on_cut, - e_week_view_on_copy, e_week_view_on_paste): - * gui/e-day-view.c (e_day_view_on_new_appointment, - e_day_view_on_new_event, e_day_view_on_new_meeting, - e_day_view_on_new_task, e_day_view_on_goto_today, - e_day_view_on_goto_date, e_day_view_on_edit_appointment, - e_day_view_on_print, e_day_view_on_save_as, - e_day_view_on_print_event, e_day_view_on_meeting, - e_day_view_on_forward, e_day_view_on_publish, - e_day_view_on_settings, e_day_view_on_delete_appointment, - e_day_view_delete_event_internal, e_day_view_on_cut, - e_day_view_on_copy, e_day_view_on_paste): removed duplicated code. - - * gui/gnome-cal.[ch] (gnome_calendar_unrecur_selection): new function. - -2003-07-23 Dan Winship <danw@ximian.com> - - * cal-util/Makefile.am: Use EVO_MARSHAL_RULE, and add - MARSHAL_GENERATED to CLEANFILES - - * gui/alarm-notify/alarm-queue.c (on_dialog_obj_updated_cb): Fix - an unused variable - - * gui/calendar-commands.c (purge_cmd): Fix warnings. - - * gui/calendar-config.h: s/confirm_expunge/confirm_purge/ to match - the actual functions - - * gui/control-factory.c: add some missing #includes - - * gui/dialogs/delete-comp.c (delete_component_dialog): Fix a - warning - - * gui/e-itip-control.c (write_label_piece): Remove unused variable. - - * gui/print.c (print_calendar): Remove unused variable - (print_comp): Likewise. - - * gui/tasks-control.c (confirm_purge): Fix warnings. - (print_tasks): Remove unused variable. - -2003-07-23 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-day-view.h: - * gui/e-week-view.h: removed unneeded prototypes. - - * gui/e-cal-view.[ch] (e_cal_view_get_visible_time_range): new - function. - (selection_received): deal correctly with the selected time range. - - * gui/e-week-view.c (e_week_view_get_visible_time_range): made it - private as the implementation of the 'get_visible_time_range' - virtual method. - - * gui/e-day-view.c (e_day_view_get_visible_time_range): ditto. - - * gui/gnome-cal.c (gnome_calendar_direction): merged redundant 'case'. - (focus_current_view): removed redundant code. - -2003-07-22 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-day-view.c (e_day_view_get_selected_events): - * gui/e-week-view.c (e_week_view_get_selected_events): manage the - case where the selected events are the popup menu ones. - -2003-07-22 Rodrigo Moya <rodrigo@ximian.com> - - * gui/gnome-cal.c (gnome_calendar_copy_clipboard, - gnome_calendar_cut_clipboard, gnome_calendar_paste_clipboard): - removed missing calls to e_day/week_view_*_clipboard. - -2003-07-22 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-view.[ch]: added "get_selected_events", - and "update_query" virtual methods. - (e_cal_view_class_init): initialize new virtual methods. - (e_cal_view_destroy): destroy new private members. - (e_cal_view_get_selected_events, e_cal_view_set_cal_client, - e_cal_view_get_cal_client): new functions. - (e_cal_view_cut_clipboard, e_cal_view_copy_clipboard, - e_cal_view_paste_clipboard): merged clipboard stuff. - - * gui/e-day-view.c (e_day_view_cut_clipboard, - e_day_view_copy_clipboard, e_day_view_paste_clipboard): removed. - (e_day_view_get_selected_events): made these private as the - implementation of the 'get_selected_events' base class virtual method. - - * gui/e-week-view.c (e_week_view_get_selected_events): ditto. - (e_week_view_cut_clipboard, e_week_view_copy_clipboard, - e_week_view_paste_clipboard): removed. - - * gui/calendar-commands.c (sensitize_calendar_commands): call - e_cal_view_get_selected_events. - - * gui/gnome-cal.c: removed a lot of redundant code thanks to the - above changes. - -2003-07-21 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-day-view.[ch]: removed e_day_view_set_calendar prototype. - (e_day_view_set_status_message): removed. - - * gui/e-week-view.[ch] (e_week_view_set_status_message): removed. - - * gui/e-cal-view.[ch] (e_cal_view_set_status_message): new functions. - (e_cal_view_destroy): unref activity client. - - * gui/gnome-cal.c: updated to e_*_view/e_cal_view. - -2003-07-18 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-day-view.[ch]: - * gui/e-week-view.[ch]: moved duplicated code to... - - * gui/e-cal-view.[ch]: ...here. - (e_cal_view_get_calendar, e_cal_view_set_calendar): new functions. - - * gui/e-week-view-event-item.c (e_week_event_item_double_click): - * gui/gnome-cal.c (setup_widgets): adapted to changes in views. - -2003-07-17 Rodrigo Moya <rodrigo@ximian.com> - - * gui/e-cal-view.[ch]: new base class for calendar views. - - * gui/e-day-view.[ch]: - * gui/e-week-view.[ch]: base these classes on ECalView. - - * gui/Makefile.am: added new files. - -2003-07-17 Rodrigo Moya <rodrigo@ximian.com> - - * gui/calendar-config.[ch]: - * gui/tasks-control.c: s/expunge/purge. - -2003-07-16 Rodrigo Moya <rodrigo@ximian.com> - - * gui/gnome-cal.[ch] (gnome_calendar_purge): new function, - which uses a CalQuery to retrieve the objects older than a given date. - (check_instance_cb): callback for cal_recur_generate_instances. - (purging_obj_updated_cb): call check_instance_cb on each recurrence - to double-check the event can be deleted. - (purging_query_done_cb, purging_eval_error_cb): needed callbacks to - finish the query. - (gnome_calendar_destroy): free new memb + * gui/e-day-vie
\ No newline at end of file diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c index b3a5dbf7c7..8be692efc4 100644 --- a/calendar/gui/e-week-view.c +++ b/calendar/gui/e-week-view.c @@ -2848,7 +2848,8 @@ e_week_view_start_editing_event (EWeekView *week_view, EWeekViewEventSpan *span; ETextEventProcessor *event_processor = NULL; ETextEventProcessorCommand command; - + ECalModelComponent *comp_data; + /* If we are already editing the event, just return. */ if (event_num == week_view->editing_event_num && span_num == week_view->editing_span_num) @@ -2868,11 +2869,28 @@ e_week_view_start_editing_event (EWeekView *week_view, NULL); } - /* FIXME: This implicitly stops any edit of another item, causing it - to be sent to the server and resulting in a call to obj_updated_cb() - which may reload all the events and so our span and text item may - actually be destroyed. So we often get a SEGV. */ + /* Save the comp_data value because we use that as our invariant */ + comp_data = event->comp_data; + e_canvas_item_grab_focus (span->text_item, TRUE); + + /* If the above focus caused things to redraw, then find the + * the event and the span again */ + if (event_num < week_view->events->len) + event = &g_array_index (week_view->events, EWeekViewEvent, event_num); + + if (event_num >= week_view->events->len || event->comp_data != comp_data) { + /* Unfocussing can cause a removal but not a new + * addition so just run backwards through the + * events */ + for (event_num--; event_num >= 0; event_num--){ + event = &g_array_index (week_view->events, EWeekViewEvent, event_num); + if (event->comp_data == comp_data) + break; + } + g_assert (event_num >= 0); + } + span = &g_array_index (week_view->spans, EWeekViewEventSpan, event->spans_index + span_num); /* Try to move the cursor to the end of the text. */ g_object_get (G_OBJECT (span->text_item), "event_processor", &event_processor, NULL); |