diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2003-06-10 01:31:26 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2003-06-10 01:31:26 +0800 |
commit | fd2f3a6d7adb1fbc154c9a8493bfb44b979da1cb (patch) | |
tree | d92902feb3bc61a35fe4b600dc42465e8bcacb90 /calendar/ChangeLog.pre-1-4 | |
parent | 1c5f741b4bc521c6d7a83907fd3dca5be32a7f79 (diff) | |
download | gsoc2013-evolution-fd2f3a6d7adb1fbc154c9a8493bfb44b979da1cb.tar gsoc2013-evolution-fd2f3a6d7adb1fbc154c9a8493bfb44b979da1cb.tar.gz gsoc2013-evolution-fd2f3a6d7adb1fbc154c9a8493bfb44b979da1cb.tar.bz2 gsoc2013-evolution-fd2f3a6d7adb1fbc154c9a8493bfb44b979da1cb.tar.lz gsoc2013-evolution-fd2f3a6d7adb1fbc154c9a8493bfb44b979da1cb.tar.xz gsoc2013-evolution-fd2f3a6d7adb1fbc154c9a8493bfb44b979da1cb.tar.zst gsoc2013-evolution-fd2f3a6d7adb1fbc154c9a8493bfb44b979da1cb.zip |
Roll over ChangeLogs.
svn path=/trunk/; revision=21387
Diffstat (limited to 'calendar/ChangeLog.pre-1-4')
-rw-r--r-- | calendar/ChangeLog.pre-1-4 | 21872 |
1 files changed, 21872 insertions, 0 deletions
diff --git a/calendar/ChangeLog.pre-1-4 b/calendar/ChangeLog.pre-1-4 new file mode 100644 index 0000000000..912411acd1 --- /dev/null +++ b/calendar/ChangeLog.pre-1-4 @@ -0,0 +1,21872 @@ +2003-06-02 Rodrigo Moya <rodrigo@ximian.com> + + Fixes part of #43388 + + * importers/icalendar-importer.c (prepare_events): + (prepare_tasks): use external iterators for removing components from + the main component. + +2003-05-29 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #43763 + + * gui/e-week-view.c (e_week_view_init): use g_signal_connect_after + for "button_press_event" callback. + + * gui/e-day-view.c (e_day_view_init): ditto. + +2003-05-29 JP Rosevear <jpr@ximian.com> + + Fixes #43775 + + * gui/weekday-picker.c (get_day_text): calculate the characters to + display correctly + (configure_items): use it + (weekday_picker_style_set): ditto + + * gui/print.c (format_date): use e_utf8_strftime + (print_week_view_background): ditto + (print_month_summary): ditto + (range_selector_new): ditto + (print_comp_item): ditto + + * gui/itip-utils.c (comp_description): the translation is already + utf8 + + * gui/e-itip-control.c (write_label_piece): the string is already + in utf8 + + * gui/e-day-view.c (e_day_view_style_set): use e_utf8_strftime + (e_day_view_recalc_cell_sizes): ditto + + * gui/e-day-view-top-item.c (e_day_view_top_item_draw): use + e_utf8_strftime + + * gui/e-cell-date-edit-text.c (ecd_get_text): return the + duplicated buffer (its already utf8) + (show_date_warning): use e_utf8_strftime + + * gui/calendar-model.c (date_value_to_string): return the + duplicated buffer (its already utf8) + (calendar_model_value_to_string): the translations should already + be in utf8 + + * gui/calendar-config.c + (calendar_config_locale_supports_12_hour_format): use + e_utf8_strftime + + * gui/calendar-commands.c (calendar_set_folder_bar_label): use + e_utf8_strftime + +2003-05-28 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #43455 + + * gui/tasks-control.c (confirm_expunge): converted to a GtkMessageDialog + and removed object weak's ref code, not needed anymore. + +2003-05-20 JP Rosevear <jpr@ximian.com> + + Fixes #43308 + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_style_set): + adjust row heights to reflect changes in etable row heights and + set display top to align properly + +2003-05-22 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/comp-editor-page.c (comp_editor_page_destroy): unref + not ref the client + +2003-05-22 JP Rosevear <jpr@ximian.com> + + Fixes #41329 + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_on_zoomed_out_toggled): make sure the + meeting time is shown afterwards + (e_meeting_time_selector_on_working_hours_toggled): ditto + +2003-05-21 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #41234 + + * gui/dialogs/e-delegate-dialog.glade: changed button ordering. + +2003-05-20 Ettore Perazzoli <ettore@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_setup_view_menus): Removed + debugging message. + +2003-05-20 Anna Marie Dirks <anna@ximian.com> + + * gui/dialogs/save-comp.c (save_component_dialog): Change this + dialog from using a gnome_message_box (which has been deprecated), + to using a gtk_message_dialog. This HIG-ifies this dialog, and + fixes bug #42046. + +2003-05-20 Hans Petter Jansson <hpj@ximian.com> + + Fixes #42056 + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_construct): + Don't create accel groups for menuitem mnemonics. Don't use + deprecated functions where we actually need accel groups. + +2003-05-19 Dan Winship <danw@ximian.com> + + * pcs/cal-backend.c (cal_backend_finalize): Don't double-free + newly-added categories that the gui hasn't been told about yet. + #43321 + +2003-05-19 Rodrigo Moya <rodrigo@ximian.com> + + * gui/main.c (factory): set 'initialized' to TRUE when initialization + is done, or we get the initialization code called over and over. + +2003-05-19 Anna Marie Dirks <anna@ximian.com> + + * gui/e-meeting-time-sel.c: (e_meeting_time_selector_construct): + Added HIG-blessed padding to (some of) the widgets in the + dialog. + + * gui/dialogs/meeting-page.glade: Added HIG-blessed border width + and spacing to the meeting page of the event editor. + + * gui/dialogs/schedule-page.glade: Added HIG-blessed border width + to the schedule page on the event editor. + + +2003-05-19 JP Rosevear <jpr@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_destroy): remove the query time + out if its still alive + (update_query_timeout): update the query and clear the time out + (client_cal_opened_cb): add the query update timeout + +2003-05-19 JP Rosevear <jpr@ximian.com> + + Fixes #43103 + + * gui/e-day-view.c (e_day_view_init): connect normally instead of + after so that our boolean return values afffect the action signal + emmissions properly + (e_day_view_on_top_canvas_drag_motion): fix proto to be a gboolean + (e_day_view_on_main_canvas_drag_motion): ditto + + * gui/e-week-view.c (e_week_view_init): connect normally instead + of after so that our boolean return values afffect the action + signal emmissions properly + +2003-05-16 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/comp-editor.c (make_title_from_comp): the title is + already in UTF-8 + +2003-05-16 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #42220 + + * gui/e-day-view.c (e_day_view_finish_resize): hide canvas items and + update internal fields before updating the object. + +2003-05-15 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/comp-editor.c (comp_editor_finalize): unref the + client and the ui component + +2003-05-15 JP Rosevear <jpr@ximian.com> + + Fixes #41935 + + * gui/e-week-view.c (e_week_view_init): listen for scroll events + on the canvas + (e_week_view_on_button_press): don't scroll here + (e_week_view_on_scroll): scroll here + + * gui/e-day-view.c (e_day_view_init): listen for scroll events on + the time and main canvases + (e_day_view_on_main_canvas_button_press): don't scroll here + (e_day_view_on_main_canvas_scroll): scroll here + (e_day_view_on_time_canvas_scroll): and here + +2003-05-15 JP Rosevear <jpr@ximian.com> + + Fixes #43029 + + * gui/e-week-view.c (e_week_view_init): don't listen for destroy + signal + (e_week_view_destroy): check for NULL and make invisible NULL + after we destroy it, unref cursors and NULL them out as well, + guard against freeing events multiple times + + * gui/e-day-view.c (e_day_view_destroy): check for NULL and make + invisible NULL after we destroy it, unref cursors and NULL them + out as well, guard against freeing events multiple times + (e_day_view_init): don't listen for destroy signal + + * gui/e-calendar-table.c (e_calendar_table_init): don't listen for + destroy signal + (e_calendar_table_destroy): check for NULL and make invisible NULL + after we destroy it + +2003-05-15 JP Rosevear <jpr@ximian.com> + + Fixes #41930 + + * idl/evolution-calendar.idl: Make sure everything that can raise + a NotFound exception lists it + +2003-05-15 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_refresh_free_busy): ref ourselves the + number of times we'll get called back + +2003-05-14 JP Rosevear <jpr@ximian.com> + + * gui/e-tasks.c (e_tasks_destroy): guard against multiple destroys + + * cal-client/cal-client.c (cal_client_finalize): unref the + bonobo listener + + * gui/gnome-cal.c (gnome_calendar_destroy): guard against multiple + destroy calls + + * gui/e-week-view.c (e_week_view_init): connect after destroy + (invisible_destroyed): don't unref, its already destroyed + + * gui/e-day-view.c (e_day_view_init): connect after destroy + (invisible_destroyed): don't unref, its already destroyed + + * gui/e-calendar-table.c (e_calendar_table_class_init): make sure + we set the parent class + (e_calendar_table_init): connect after the destroy handler runs + (e_calendar_table_destroy): guard against multiple destroys + (invisible_destroyed): don't unref the invisible, its already + being destroyed + + * gui/calendar-offline-handler.c (backend_cal_set_mode): unref the + client, we are done with it now + (backend_cal_opened_online): ditto + (impl_dispose): unref our main client + + * gui/calendar-commands.c (control_util_set_folder_bar_label): + release/unref the shell view once we are done with it + (control_util_show_settings): ditto + +2003-05-13 Rodrigo Moya <rodrigo@ximian.com> + + * gui/alarm-notify/alarm-queue.c (notify_dialog_cb): fixed memory + leak introduced by previous commit. + +2003-05-12 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #41760 + + * gui/alarm-notify/alarm-queue.c (create_snooze): don't add a new + alarm, but update the already existing one. + (notify_dialog_cb): make sure we don't remove the alarm if we are + snoozing. + +2003-05-07 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/task-page.glade: fix button conversion problem + + * gui/dialogs/task-details-page.c + (task_details_page_fill_widgets): only free the percent if its + non-null + +2003-05-07 Rodrigo Moya <rodrigo@ximian.com> + + * cal-client/cal-client.c (cal_client_discard_alarm): added missing + assignment. + +2003-05-05 JP Rosevear <jpr@ximian.com> + + Fixes #41811 + + * gui/alarm-notify/Makefile.am: don't dist idl generated files + +2003-05-01 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/task-editor.c (task_editor_finalize): unref the + model again + (task_editor_edit_comp): don't allow editing if the assignee has + delegated + + * gui/dialogs/meeting-page.c (popup_delete_cb): set the new + non-delegator to be editable + + * gui/dialogs/event-editor.c (event_editor_edit_comp): don't allow + editing if the attendee has delegated + (event_editor_finalize): unref the model again + + * gui/e-meeting-model.c: remove e-table-without related functions + (finalize): don't create without table + (e_meeting_model_etable_from_model): build the table with this as + model + (e_meeting_model_etable_model_to_view_row): directly use the + model_to_view call + (e_meeting_model_etable_view_to_model_row): as above + (attendee_changed_cb): make sure pre change is alwasy called + + * gui/e-meeting-model.h: use DECLS, remove protos for long dead + functions, don't include config.h + +2003-04-30 Rodrigo Moya <rodrigo@ximian.com> + + * gui/alarm-notify/alarm-notify.c (alarm_notify_add_calendar): removed + unused code. + +2003-04-29 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/task-editor.c (task_editor_finalize): ditto + + * gui/dialogs/event-editor.c (event_editor_finalize): don't unref + the model here + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_destroy): null + up the display_top and display_main for re-entrancy purposes + +2003-04-25 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (itip_send_comp): kill warnings + +2003-04-28 Anna Marie Dirks <anna@ximian.com> + + * gui/dialogs/alarm-options.glade: Added HIG-blessed padding + to the alarm options dialog. Fixes bug #41221. + +2003-04-28 Anna Marie Dirks <anna@ximian.com> + + * gui/dialogs/cal-prefs-dialog.glade: Added appropriate spacing + and padding to the calendar/tasks page of the settings dialog. + Fixes bug #41129 + + +2003-04-28 Anna Marie Dirks <anna@ximian.com> + + * gui/dialogs/task-page.glade: Finishes up fixing #41256 by + adding appropriate spacing/padding to the main task page. + + * gui/dialogs/task-details-page.glade: Added appropriate + spacing and padding to the task-details page. Partially + fixes #41256. + + +2003-04-28 Anna Marie Dirks <anna@ximian.com> + + * gui/dialogs/recurrence-page.glade: Added padding/spacing + to this page as specified by the HIG. Partially fixes #41215. + + * gui/dialogs/alarm-page.glade: Added padding/spacing/stock + buttons to the alarm page. Partially fixes #41215. + + * gui/dialogs/event-page.glade: Added padding/spacing to the + event-page (partially fixes #41215) + + +2003-04-27 Rodney Dawes <dobey@ximian.com> + + Fixes #35814 + + * gui/calendar-component.c: Change mnemonic/keybinding for + New Meeting to not conflict with other items in the File->New menu + +2003-04-24 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #41661 + + * idl/evolution-calendar.idl: added discardAlarm method to + GNOME:Evolution:Calendar:Cal interface. + + * pcs/cal.c (cal_class_init): set new epv's method. + (impl_Cal_discardAlarm): implementation of new CORBA method. + + * pcs/cal-backend.[ch]: added 'discard_alarm' virtual method, and + CAL_BACKEND_RESULT_NOT_IMPLEMENTED to CalBackendResult enum. + (cal_backend_class_init): initialize new class method. + (cal_backend_discard_alarm): new method. + (cal_backend_update_objects, cal_backend_remove_object): return + proper CalBackendResult values. + + * pcs/cal-backend-file.c (cal_backend_file_class_init): initialize + new class method. + (cal_backend_file_discard_alarm): implementation of new method. + + * pcs/cal-client.[ch] (cal_client_discard_alarm): new function. + + * gui/alarm-notify/alarm-queue.c (remove_qeueud_alarm): don't remove + the alarm directly from the component, call cal_client_discard_alarm + and let the backend deal with it. + +2003-04-24 JP Rosevear <jpr@ximian.com> + + * gui/apps_evolution_calendar.schemas: set the hpane default to + 32000 so we never see a pane no matter the start up window size + unless the user changes it + +2003-04-24 JP Rosevear <jpr@ximian.com> + + Fixes #37552 + + * gui/dialogs/Makefile.am: build delete-error.[hc] + + * gui/e-tasks.c: wrap calls to cal_client_remove_object with + delete_error_dialog + + * gui/e-itip-control.c: ditto + + * gui/e-calendar-table.c: ditto + + * gui/e-week-view.c: ditto + + * gui/e-day-view.c: ditto + + * gui/dialogs/delete-error.[hc]: gemerate an error message based + on result + +2003-04-23 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-day-view.c (e_day_view_on_delete_occurrence): removed + unused variable.. + +2003-04-23 Hans Petter Jansson <hpj@ximian.com> + + Fixes #41641 + + * gui/e-day-view.c (e_day_view_focus_in): Remove assert an old + input method code. + (e_day_view_focus_out): Ditto. + (e_day_view_reshape_long_event): Set input method context. + (e_day_view_reshape_day_event): Ditto. + (e_day_view_on_editing_started): Let EText handle the context popup. + (e_day_view_on_editing_stopped): Turn off EText's handling of context + popup. + + * gui/e-week-view.c (e_week_view_reshape_event_span): Set input + method context. + (e_week_view_on_text_item_event): Let the EText item handle + right-click context popup if we're editing it. + (e_week_view_on_editing_started): Let the EText item handle the + context popup. + (e_weeK_view_on_editing_stopped): Turn off EText's handling of + context popup. + +2003-04-23 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #41671 + + * gui/alarm-notify/notify-main.c (main): added calls to gnome_sound_init + and gnome_sound_shutdown. + + * gui/alarm-notify/alarm-queue.c (audio_notification): check that the + sound file exists, and gdk_beep if not. + +2003-04-22 Rodrigo Moya <rodrigo@ximian.com> + + Fixes part of #41148, #41216 and #41235 + + * gui/e-itip-control.c (init): + * gui/e-meeting-time-sel.c (e_meeting_time_selector_construct, + e_meeting_time_selector_add_key_color): + * gui/e-timezone-entry.c (e_timezone_entry_init): + * gui/gnome-cal.c (setup_widgets): + * gui/tasks-control.c (confirm_expunge): + * gui/dialogs/comp-editor.c (setup_widgets): + * gui/dialogs/e-delegate-dialog.c (e_delegate_dialog_construct): + * gui/dialogs/meeting-page.c (meeting_page_construct): + * gui/dialogs/recurrence-page.c (make_weekly_special, + make_monthly_special, make_ending_count_special): + * gui/dialogs/schedule-page.c (schedule_page_construct): + use HIG-suggested spacing. + +2003-04-21 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #22444 + + * gui/calendar-commands.c: added new verbs for occurrence-related + menu items. + (delete_occurrence_cmd): added callback for "Delete this occurrence" + menu item. "Delete all occurrences" is just the same as "Delete". + (sensitize_calendar_commands): sensitive ocurrence-related menu items. + + * gui/gnome-cal.[ch] (gnome_calendar_delete_selected_occurrence): new + function. + (gnome_calendar_get_current_view_widget): made this public. + + * gui/e-week-view.[ch] (e_week_view_get_selected_event): + (e_week_view_delete_occurrence): new functions. + (e_week_view_delete_occurrence_internal): real implementation of the + 'Delete Occurrence' logic. + (e_week_view_on_delete_occurrence): call delete_instance_internal. + + * gui/e-day-view.[ch] (e_day_view_get_selected_event): + (e_day_view_delete_occurrence): new functions. + (e_week_view_delete_occurrence_internal): real implementation of the + 'Delete Occurrence' logic. + (e_week_view_on_delete_occurrence): call delete_occurrence_internal. + +2003-04-18 Rodrigo Moya <rodrigo@ximian.com> + + * gui/alarm-notify/alarm-notify.glade: removed 'heading' and + 'message' labels. + + * gui/alarm-notify/alarm-notify-dialog.c: removed deleted widgets. + (alarm_notify_dialog): don't load the removed widgets. + +2003-04-18 Rodney Dawes <dobey@ximian.com> + + Fixes #21499 + + * gui/Makefile.am: + * gui/calendar-commands.c: + * gui/tasks-control.c: + * gui/dialogs/Makefile.am: + * gui/dialogs/comp-editor.c: + Use PREFIX instead of EVOLUTION_DATADIR for bonobo_ui_util_set_ui () + +2003-04-17 JP Rosevear <jpr@ximian.com> + + Fixes #41459 + + * gui/dialogs/meeting-page.c: comment out delegation stuff + +2003-04-17 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #34498 + + * gui/alarm-notify/alarm-queue.c: added a 'uid' field to the + CompQueuedAlarms structure. + (remove_queued_alarm): free the 'uid' field when freeing the + structure. + (add_component_alarms): g_strdup the component's UID and use that as + the key for the hash table. + +2003-04-16 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #41129, #41215, #41221, #41256 + + * gui/alarm-notify/alarm-notify.glade: + * gui/dialogs/alarm-options.glade: + * gui/dialogs/alarm-page.glade: + * gui/dialogs/cal-prefs-dialog.glade: + * gui/dialogs/e-delegate-dialog.glade: + * gui/dialogs/meeting-page.glade: + * gui/dialogs/recurrence-page.glade: + * gui/dialogs/schedule-page.glade: + * gui/dialogs/task-details-dialog.glade: + * gui/dialogs/task-page.glade: + * gui/dialogs/event-page.glade: set spacing to 6 pixels + everywhere. + +2003-04-16 JP Rosevear <jpr@ximian.com> + + Fixes #41230 + + * gui/e-itip-control.c (show_current): make sure to pass TRUE for + tasks + (start_calendar_server): make sure we don't gtk_main_quit if we + haven't gtk_main'ed + (start_calendar_server_cb): ditto + +2003-04-15 JP Rosevear <jpr@ximian.com> + + Fixes #39735 and 40257 + + * gui/gnome-cal.c: convert float pane positions to ints + (setup_widgets): set the initial position after realization and + track the drags to get the new position, pack the panes slightly + differently + (gnome_calendar_set_pane_positions): set purely pixel oriented + positions + (gnome_calendar_update_config_settings): no need to update quanta + setting + (gnome_calendar_hpane_realized): realization callback + (gnome_calendar_vpane_realized): ditto + (gnome_calendar_vpane_resized): resize callback, store new size + (gnome_calendar_hpane_resized): ditto + + * gui/calendar-model.c (get_due_status): handle an error getting + the timezone + + * gui/calendar-config.c (calendar_config_get_hpane_pos): return an int + (calendar_config_set_hpane_pos): take an int + (calendar_config_get_vpane_pos): return an int + (calendar_config_set_vpane_pos): take an int + + * gui/calendar-config.h: update protos + + * gui/apps_evolution_calendar.schemas: update defaults for pane + positions + +2003-04-15 Hans Petter Jansson <hpj@ximian.com> + + * gui/calendar-component.c (owner_set_cb): If we already have an + evolution_dir, free the old one before setting it anew. + + * gui/e-day-view-time-item.c (e_day_view_time_item_draw): Unref the + metrics. + + * gui/e-day-view.c (e_day_view_style_set): Unref the metrics. + (e_day_view_recalc_cell_sizes): We don't need font metrics here. + (e_day_view_reshape_long_event): Ditto. + + * gui/e-meeting-model.c (init): Don't dup the string passed to + e_table_without_hide(). + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_style_set): + Unref the metrics. + (e_meeting_time_selector_recalc_date_form): Doesn't need metrics. + + * gui/e-week-view-main-item.c (e_week_view_main_item_draw_day): + Unref the metrics. + + * gui/e-week-view.c (e_week_view_style_set): Unref metrics. + (e_week_view_recalc_cell_sizes): Ditto. + (e_week_view_reshape_event_span): Move Pango stuff to where it + can't be leaked due to an early return. Unref metrics. + + * gui/weekday-picker.c (weekday_picker_style_set): Unref metrics. + + * gui/dialogs/meeting-page.c (meeting_page_finalize): Free default + address. + +2003-04-11 Dan Winship <danw@ximian.com> + + * gui/dialogs/Makefile.am (IDL_GENERATED, etc): Oops. Add this + back. Turns out it's still needed by other parts. + +2003-04-11 Dan Winship <danw@ximian.com> + + * gui/dialogs/task-page.glade: Remove the "Contacts" button and + entry from here too. Supposed to have been part of #35926 + + * gui/dialogs/task-page.c: Remove all code pertaining to the + contacts button + + * gui/dialogs/comp-editor-util.c: + * gui/dialogs/comp-editor-util.h: Likewise + + * gui/dialogs/Makefile.am (IDL_GENERATED, etc): Remove + select-names stuff, which is no longer used. + +2003-04-11 Rodrigo Moya <rodrigo@ximian.com> + + * cal-util/cal-util.h: added missing capabilities. + + * cal-client/cal-client.c (cal_client_get_one_alarm_only, + cal_client_get_organizer_must_attend, + cal_client_get_save_schedules): + * gui/itip-utils.c (itip_organizer_is_user): + * gui/e-calendar-table.c (e_calendar_table_on_right_click): + * gui/dialogs/task-editor.c (set_menu_sens): + * gui/dialogs/event-page.c (event_page_fill_widgets): + * gui/dialogs/meeting-page.c (meeting_page_fill_widgets): + * gui/dialogs/alarm-page.c (button_options_clicked_cb): use the macros + defined in cal-util.h for static capabilities. + +2003-04-11 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-model.c (start_addressbook_server): load the + default book to look for additional free/busy info in + (init): ugly hack to make sure we get destroyed, set idle id to 0 + (process_callbacks): unref the im because we are now done with it + (refresh_busy_periods): set idle id to 0, ref the model and handle + e_book_get_cursor error + +2003-04-11 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-time-sel-item.c + (e_meeting_time_selector_item_destroy): guard against multiple + destroy calls + +2003-04-11 JP Rosevear <jpr@ximian.com> + + * cal-client/cal-client.c (cal_client_get_free_busy): only print a + message if the exception isn't the reasonable NotFound + +2003-04-11 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/schedule-page.c (schedule_page_finalize): unref the + main widget since we ref it when we un-parent it + + * gui/dialogs/alarm-page.c (alarm_page_finalize): ditto + + * gui/dialogs/task-page.c (task_page_finalize): ditto + + * gui/dialogs/event-page.c (event_page_finalize): ditto + + * gui/dialogs/task-details-page.c (task_details_page_finalize): + ditto + + * gui/dialogs/recurrence-page.c (recurrence_page_finalize): ditto + + * gui/dialogs/meeting-page.c (meeting_page_finalize): ditto + +2003-04-10 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_options_menu_position_callback): + (e_meeting_time_selector_autopick_menu_position_callback): added the + allocation's X and Y position to the calculated coordinates. + +2003-04-10 JP Rosevear <jpr@ximian.com> + + Fixes #41127 + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_refresh_cb): + unref here, when the callback is done + (e_meeting_time_selector_refresh_free_busy): don't unref here + + * gui/e-meeting-model.c (process_free_busy): if the type is + unexpected, make sure we cleanup properly + +2003-04-10 Rodrigo Moya <rodrigo@ximian.com> + + * gui/alarm-notify/alarm-queue.c (remove_queued_alarm): only remove + the alarm for backends that want it (Exchange). + +2003-04-10 Rodrigo Moya <rodrigo@ximian.com> + + * cal-util/cal-util.h: added #define's for static capabilities. + + * pcs/cal-backend-file.c (cal_backend_file_get_static_capabilities): + use the #define's above. + +2003-04-09 Chris Toshok <toshok@ximian.com> + + Fixes #40133 + + * pcs/cal-backend.c (cal_backend_class_init): use G_TYPE_INT + instead of G_TYPE_ENUM as a parameter type for the signal to get + rid of runtime warning. + +2003-04-09 JP Rosevear <jpr@ximian.com> + + Fixes #40915 + + * gui/calendar-model.c (get_due_status): when getting the current + time for date values, use a timezone aware function + +2003-04-09 JP Rosevear <jpr@ximian.com> + + Fixes #40952 + + * pcs/cal-backend-file.c (cal_backend_file_open): check for file + method instead of is_local + +2003-04-08 JP Rosevear <jpr@ximian.com> + + Fixes #40894 + + * gui/gnome-cal.c + (gnome_calendar_on_date_navigator_selection_changed): update the + selection for all view types + +2003-04-08 Ettore Perazzoli <ettore@ximian.com> + + * gui/dialogs/alarm-options.c: Remove button_ok, button_cancel, + canceled members from struct Dialog. + (get_widgets): Do not initialize. + (close_dialog): Destroy the toplevel. + (toplevel_delete_event_cb): Removed. + (button_cancel_clicked_cb): Removed. + (button_ok_clicked_cb): Removed. + (close_dialog): Removed. + (alarm_options_dialog_run): Use gtk_dialog_run. + (init_widgets): Do not init ->canceled, do not connect OK/Cancel + buttons. + (alarm_to_dialog): No need to make the file entry modal from here + anymore. + + * gui/dialogs/alarm-options.glade: Turned into a GtkDialog. Set + the "modal" property to True for the file entry. + +2003-04-07 Hans Petter Jansson <hpj@ximian.com> + + Fixes #35926. + + * gui/dialogs/event-page.glade: Remove contacts entry/chooser. + + * gui/dialogs/event-page.c: Remove contacts entry/chooser. + (event_page_init): Remove references. + (event_page_finalize): Ditto. + (event_page_fill_widgets): Ditto. + (event_page_fill_component): Ditto. + (get_widgets): Ditto. + (init_widgets): Ditto. + (contacts_clicked_cb): Remove wholesale. + (contacts_changed_cb): Ditto. + +2003-04-07 JP Rosevear <jpr@ximian.com> + + Fixes #40876 + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_refresh_free_busy): guard against + callbacks after destruction + (e_meeting_time_selector_refresh_cb): ditto + +2003-04-07 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/event-page.glade: create buttons properly + + * gui/itip-utils.c (comp_server_send): for errors other than busy, + we want to email the results + + * pcs/cal-backend.c (cal_backend_ref_categories): insert the new + category in the category list as well + (idle_notify_categories_changed): reset idle id + +2003-04-07 Not Zed <NotZed@Ximian.com> + + Fixes #40252 + + * conduits/todo/todo-conduit.c: Same as below. + + * conduits/calendar/calendar-conduit.c: Change the LOG macro to a + single arg macro which copies its arg. Fix all callers. Change + WARN and INFO to simply g_warning/g_message. Init G_LOG_DOMAIN + before including anything. + +2003-04-07 Dan Winship <danw@ximian.com> + + * gui/GNOME_Evolution_Calendar.server.in.in: Clean up server names + + * gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.server.in.in: + Likewise + + * importers/GNOME_Evolution_Calendar_Importer.server.in.in: + Likewise. Also mark the evolution:menu_name for i18n + +2003-04-07 Hans Petter Jansson <hpj@ximian.com> + + * gui/e-meeting-attendee.[ch]: GObjectify. Eliminates ref/sink + warnings from the meeting editor. + +2003-04-06 Hans Petter Jansson <hpj@ximian.com> + + Week view part of fix for #39895. + + * gui/e-week-view-main-item.c (e_week_view_main_item_draw_day): + Use the UNFOCUSSED colour if we're not focused, rather than not + drawing anything. + + * gui/e-week-view.c: Set up the UNFOCUSSED colour. + + * gui/e-week-view.h: Add the UNFOCUSSED colour. + +2003-04-04 JP Rosevear <jpr@ximian.com> + + Fixes #40790 + + * gui/alarm-notify/alarm-queue.c (procedure_notification_dialog): + return based on the response code (not old button stuff) + +2003-04-04 Ettore Perazzoli <ettore@ximian.com> + + * gui/dialogs/alarm-options.c (alarm_to_dialog): Make the file + entry modal. [#40792] + +2003-04-04 JP Rosevear <jpr@ximian.com> + + Fixes #40789 + + * gui/dialogs/alarm-options.c (alarm_to_dalarm_widgets): + description is a text buffer + (alarm_to_malarm_widgets): ditto + (dalarm_widgets_to_alarm): ditto + (malarm_widgets_to_alarm): ditto + (alarm_to_repeat_widgets): check repeat status correctly + +2003-04-04 Dan Winship <danw@ximian.com> + + * gui/e-itip-control.c (write_html): Don't free static string. + +2003-04-04 JP Rosevear <jpr@ximian.com> + + * gui/cal-search-bar.c (cal_search_bar_destroy): guard against + multiple destroy calls + +2003-04-04 JP Rosevear <jpr@ximian.com> + + * cal-client/cal-client.c (get_default_uri): guard against empty + uri as well + +2003-04-04 JP Rosevear <jpr@ximian.com> + + Fixes #40722 + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_destroy): + guard against multiple destroy calls + +2003-04-02 Jeffrey Stedfast <fejj@ximian.com> + + * gui/control-factory.c (set_prop): Add a check to see if the view + should be the day-view and change the default to be whatever + calendar_config_get_default_view() returns. Should fix bug #39735. + + * gui/calendar-config.h: calendar_config_write() and + calendar_config_write_on_exit() no longer exist. Removed + prototypes. + + * gui/control-factory.c (set_prop): g_strcasecmp() is + deprecated. Since the values can never be anything other than all + lowercase anyway, just use strcmp. + +2003-04-02 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #39262 + + * importers/icalendar-importer.c (load_file_fn, vcal_load_file_fn): + use folder_type argument to determine what to import. + +2003-04-02 Rodrigo Moya <rodrigo@ximian.com> + + * importers/icalendar-importer.c (load_file_fn, vcal_load_file_fn): + added "folder_type" parameter to EvolutionImporterLoadFileFn. + +2003-04-02 JP Rosevear <jpr@ximian.com> + + Fixes #39955 + + * gui/itip-utils.c (comp_sentby): don't unref the the account + +2003-04-02 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #40661 + + * gui/itip-utils.c: added missing header for Forte compilation. + +2003-04-01 Hans Petter Jansson <hpj@ximian.com> + + * gui/e-day-view-main-item.c (e_day_view_main_item_draw): + Nuke GdkFont and use Pango's font measuring. + + * gui/e-day-view-time-itme.c (e_day_view_time_item_get_column_width) + (e_day_view_time_item_draw): Ditto. + + * gui/e-day-view-top-item.c (e_day_view_top_item_draw) + (e_day_view_top_item_draw_long_event): Ditto. + + * gui/e-day-view.c (e_day_view_style_set) + (e_day_view_recalc_cell_sizes) + (e_day_view_reshape_long_event) + (e_day_view_update_top_canvas_drag) + (e_day_view_update_main_canvas_drag): Ditto. + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_style_set) + (e_meeting_time_selector_recalc_date_form): Ditto. + + * gui/e-week-view-event-item.c (e_week_view_draw_time): Ditto. + + * gui/e-week-view-main-item.c (e_week_view_main_item_draw_day): + Ditto. + + * gui/e-week-view-titles-item.c (e_week_view_titles_item_draw): + Ditto. + + * gui/e-week-view.c (e_week_view_style_set) + (e_week_view_recalc_cell_sizes) + (e_week_view_reshape_event_span): Ditto. + + * gui/weekday-picker.c (weekday_picker_style_set): Ditto. + +2003-04-01 JP Rosevear <jpr@ximian.com> + + Fix for #17231 (Evo portion) + + * conduits/todo/todo-conduit.c (comp_from_remote_record): test for + secret flag properly + + * conduits/calendar/calendar-conduit.c (comp_from_remote_record): + ditto + +2003-04-01 Rodrigo Moya <rodrigo@ximian.com> + + * importers/icalendar-importer.c (load_file_fn, vcal_load_file_fn): + added filename (tasks.ics/calendar.ics) to the URI if it does not + contain it. + +2003-03-31 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #39961 + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_options_menu_position_callback): + (e_meeting_time_selector_autopick_menu_position_callback): use the + button's allocation to position the popup menu. + +2003-03-29 Not Zed <NotZed@Ximian.com> + + Fixes #39895 + + * gui/e-day-view.h (EDayViewColors): add an unfocussed colour to + draw the selection in when we're not focussed. + + * gui/e-day-view.c (e_day_view_realize): Initialise + E_DAY_VIEW_COLOR_BG_SELECTED_UNFOCUSSED to be 1/2 saturation of + the focussed colour. + + * gui/e-day-view-main-item.c (e_day_view_main_item_draw): Use the + UFOCUSSED colour if we aren't focussed, rather than just not + drawing anything. + +2003-03-28 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (get_servers): the shell client is a + g_object now, ref appropriately + +2003-03-28 Hans Petter Jansson <hpj@ximian.com> + + * gui/e-day-view.c (comp_destroy_cb) + (e_day_view_on_long_event_button_press) + (e_day_view_on_event_button_press) + (e_day_view_on_long_event_click) + (e_day_view_on_event_click) + (e_day_view_on_event_double_click) + (e_day_view_on_delete_appointment): Hold weak references to the + CalComponent instead of connecting to the "destroy" signal. + + * gui/e-week-view.c (comp_destroy_cb) + (e_week_view_on_text_item_event): Ditto. + +2003-03-28 Hans Petter Jansson <hpj@ximian.com> + + Fixes #39954 + + * gui/dialogs/recurrence-page.c (make_recurrence_special): + Destroy would-be children of the container before the container. + +2003-03-28 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/meeting-page.c (meeting_page_init): init new members + (get_current_account): get a matching account for the currently + selected user in the combo + (meeting_page_finalize): unref the meeting attendee if there is + one + (meeting_page_fill_widgets): don't set the combo list here + (clear_widgets): set the default organizer here and if we don't + have an organizer, add the default organizer as an attendee + (meeting_page_fill_component): use get_current_account + (org_changed_cb): if this is a new meeting and the organizer + changes, change the attendee + (change_clicked_cb): no need to set the default here + (init_widgets): reflect changed callback name + (meeting_page_construct): set the combo strings here + (popup_delete_cb): remove the organizer attendee if the user + explicitly deletes it + + * gui/e-meeting-model.c (attendee_changed_cb): set row properly + + * gui/itip-utils.c (comp_to_list): skip the user themselves if + cancelling or requesting + +2003-03-26 Rodrigo Moya <rodrigo@ximian.com> + + * importers/icalendar-importer.c (gnome_calendar_import_data_fn): use + g_object_unref for CalClient's. + (create_checkboxes_control): use g_signal_connect. + + * cal-client/cal-client.c (cal_client_get_load_state): return correct + values in g_return_val_if_fail. + +2003-03-26 Jack Jia <jack.jia@sun.com> + + * calendar/gui/dialogs/alarm-options.c + (malarm_widgets_to_alarm): add a parameter(TC_CORBA_string) to + the bonobo_widget_get_property. + +2003-03-25 Dan Winship <danw@ximian.com> + + * gui/itip-utils.c: Update for e_notice move + + * gui/tasks-control.c (confirm_expunge): Move the code that used + to be e_gnome_dialog_set_parent here, since it was marked + deprecated and this was the only place using it. + + * gui/dialogs/comp-editor.c: Update for e_notice move + (page_changed_cb, page_summary_changed_cb, page_dates_changed_cb): + Pass a parent_window to e_notice. + + * gui/dialogs/meeting-page.c: Update for e_notice move. + (meeting_page_fill_component, meeting_page_fill_component, + popup_delegate_cb): Pass a parent_window to e_notice + +2003-03-25 Dan Winship <danw@ximian.com> + + * cal-util/cal-util.c (cal_util_parse_ics_file): Utility wrapper + around icalparser. + + * cal-util/test-recur.c (main): Use it + + * pcs/cal-backend-file.c (open_cal): Likewise + + * gui/comp-editor-factory.c (open_client): Add the OpenClient to + the hash before calling cal_client_open_calendar, since in some + failure cases, that will call cal_opened_cb (which will free the + oc) with a failure immediately, causing a crash if we then try to + deref it. + +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 + +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 + +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 + +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. + +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. + +2003-03-20 Rodrigo Moya <rodrigo@ximian.com> + + * importers/ical-importer.c: removed activation of shell_client. + (importer_destroy_cb): no need to unref shell_client. + (connect_to_shell): removed. + (ical_importer_new, vcal_importer_new): don't call connect_to_shell. + +2003-03-20 Rodrigo Moya <rodrigo@ximian.com> + + * importers/ical-importer.c (get_uri_from_folder_path): removed. + (load_file_fn, vcal_load_file_fn): use physical_uri instead of + folderpath. + +2003-03-19 Ettore Perazzoli <ettore@ximian.com> + + * importers/GNOME_Evolution_Calendar_Importer.server.in.in: + Replace "evolution:menu-name" prop with "evolution:menu_name". + [#39692] + +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. + +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. + +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. + +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. + +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. + +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. + +2003-03-14 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-factory.c (impl_CalFactory_uriList): set_release + on the sequence we create. + + * cal-client/cal-client.c (cal_client_uri_list): don't leak the + string sequence returned by CalFactory_uriList. + +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. + +2003-03-12 Rodrigo Moya <rodrigo@ximian.com> + + * gui/dialogs/save-comp.c (save_component_dialog): don't use + GNOME_STOCK_* defines, but GTK_STOCK_*. + +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. + +2003-03-11 Dan Winship <danw@ximian.com> + + * gui/calendar-config.c (on_timezone_set): Update for timezone + dialog API changes. + + * gui/e-timezone-entry.c: Likewise + +2003-03-11 Rodrigo Moya <rodrigo@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_open): issue more descriptive + warnings. + +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. + +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. + +2003-03-06 Rodrigo Moya <rodrigo@ximian.com> + + * gui/alarm-queue.c (display_notification): ref the CalClient. + (notify_dialog_cb): unref the CalClient. + +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. + +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. + +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 + +2003-03-05 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (show_current): g_objectify ref/unref + + * gui/itip-bonobo-control.c (set_data_idle_cb): as above + (pstream_load): ditto + + * gui/dialogs/alarm-options.c (alarm_to_malarm_widgets): as above + +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 + +2003-03-05 Rodrigo Moya <rodrigo@ximian.com> + + * gui/calendar-offline-handler.c (backend_go_offline, + backend_go_online): cast CalClient's to GObject, not GtkObject. + +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 + +2003-03-04 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 + +2003-03-04 JP Rosevear <jpr@ximian.com> + + * gui/calendar-offline-handler.c (backend_cal_opened_online): set + the backend to REMOTE mode when it opens + (backend_go_online): prepare to set calendar mode to REMOTE + (impl_goOnline): get all the local calendars and set to REMOTE + +2003-03-04 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 + +2003-03-04 JP Rosevear <jpr@ximian.com> + + Fixes #37883 + + * idl/evolution-calendar.idl: getLdapAttribute can raise NotFound + +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 + +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 + (cal_client_get_ldap_attribute): accessor + +2003-03-04 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (itip_organizer_is_user): call + cal_client_get_cal_address instead of cal_client_get_email_address + + * gui/dialogs/meeting-page.c (meeting_page_construct): ditto + + * pcs/cal.c (impl_Cal_get_cal_address): implement updated method + name + (cal_class_init): set method implementation + + * pcs/cal-backend.c (cal_backend_class_init): init get_cal_address + virtual function + (cal_backend_get_cal_address): call proper function + + * pcs/cal-backend.h: update proto, rename get_email_address + virtual function to get_cal_address virtual function + + * pcs/cal-backend-file.c (cal_backend_file_class_init): match + get_cal_address call + (cal_backend_file_get_cal_address): rename from + cal_backend_file_get_email_address + + * cal-client/cal-client.c: rename email_address private member to + cal_address + (cal_client_init): init cal_address + (cal_client_destroy): free cal_address and properly free + alarm_email_address + (cal_client_get_cal_address): rename from + cal_client_get_email_address and call proper corba function + +2003-03-04 JP Rosevear <jpr@ximian.com> + + * idl/evolution-calendar.idl: fix comment + +2003-03-04 JP Rosevear <jpr@ximian.com> + + * gui/calendar-model.c (calendar_model_append_row): update FIXME + note + +2003-03-04 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/recur-comp.h: fix copyright + + * gui/dialogs/recur-comp.c: fix copyright + (recur_component_dialog): say "recurring journal entry" instead of + just "recurring journal" + +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 + +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 + +2003-03-03 Hans Petter Jansson <hpj@ximian.com> + + * gui/dialogs/alarm-page.c + * gui/dialogs/event-page.c + * gui/dialogs/meeting-page.c + * gui/dialogs/recurrence-page.c + * gui/dialogs/schedule-page.c + * gui/dialogs/task-details-page.c + * gui/dialogs/task-page.c (get_widgets): gtk_widget_unparent() -> + gtk_container_remove(). The former caused crashes in the + addressbook's name-selector. + +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. + +2003-02-28 Hans Petter Jansson <hpj@ximian.com> + + * importers/Makefile.am: Shlibify. + + * importers/GNOME_Evolution_Calendar_Importer.server.in.in: + Shlibify. + + * importers/icalendar-importer.c: Add necessary includes. + (importer_destroy_cb): This is now a GWeakNotify func. gtk_ -> g_. + (ical_importer_new) + (vcal_importer_new) + (gnome_calendar_importer_destroy_cb): Destroy signal -> weak ref. + + * importers/main.c: Add necessary includes. Shlibify. + +2003-02-28 Dan Winship <danw@ximian.com> + + * 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) + +2003-02-28 Hans Petter Jansson <hpj@ximian.com> + + * Makefile.am (SUBDIRS): Add importers/. + + * importers/Makefile.am (server_in_files) + (server_DATA): Insert $(libexecdir). + + * importers/icalendar-importer.c (connect_to_shell): + oaf_activate_from_id() -> bonobo_activation_activate_from_id(). + (load_vcalendar_file): U_() -> _(). + + * importers/GNOME_Evolution_Calendar_Importer.server.in: + Renamed to corresponding .in.in. + +2003-02-28 Dan Winship <danw@ximian.com> + + * gui/Makefile.am (libevolution_calendar_la_LIBADD): Remove + libalarm.a, which was not being used by the calendar. + + * gui/main.c: Remove unneeded alarm.h include. + + * gui/alarm-notify/Makefile.am (noinst_LIBRARIES): Stop building + libalarm.a + (evolution_alarm_notify_SOURCES): Add alarm.c, alarm.h + (evolution_alarm_notify_LDADD): Remove libalarm.a + +2003-02-27 JP Rosevear <jpr@ximian.com> + + * conduits/todo/Makefile.am: link to versist libtool object + + * conduits/calendar/Makefile.am: ditto + +2003-02-26 Hans Petter Jansson <hpj@ximian.com> + + This makes alarm notification work. + + * gui/alarm-notify/notify-main.c (main): Initialize GTK. Don't + initialize bonobo activation - bonobo_init() does that for us. + +2003-02-26 Hans Petter Jansson <hpj@ximian.com> + + This makes creating appointments and tasks from the "New" button work. + + * gui/main.c (comp_editor_factory_fn): Doesn't need to take any args. + (factory): Add a handler for CompEditorFactory. + +2003-02-26 Hans Petter Jansson <hpj@ximian.com> + + Fixes Ximian #37895. + + * gui/e-day-view.c (e_day_view_destroy): g_object_unref () -> + pango_font_description_free (). + (e_day_view_style_set): Ditto. + + * gui/e-week-view.c (e_week_view_destroy): Ditto. + +2003-02-26 Hans Petter Jansson <hpj@ximian.com> + + Fixes Ximian #38306. + + * gui/e-itip-control.c (clean_up): Do nothing if the private structure + has been freed. Don't call non-g_free() freers with NULL pointers. + (destroy): Do nothing if the private structure has been freed. Clear + pointers to freed blocks. + +2003-02-25 Hans Petter Jansson <hpj@ximian.com> + + * gui/print.c (print_calendar): Use fixed margins of 5% of page + width/height. This is the same cheat as gtkhtml employs to get + around the fact that GNOME_PRINT_KEY_PAGE_MARGIN_* don't return + useful values (I think). It sort of sucks, but is better than + no margins at all. + (print_comp): Ditto. + +2003-02-25 Hans Petter Jansson <hpj@ximian.com> + + * gui/calendar-config.c (calendar_config_get_default_view): Get + default view from correct key. + +2003-02-25 Hans Petter Jansson <hpj@ximian.com> + + * gui/dialogs/cal-prefs-dialog.c (get_widgets): Show start/end-of-day + widgets. + +2003-02-23 Hans Petter Jansson <hpj@ximian.com> + + * cal-client/cal-client.c (cal_client_is_read_only): Don't warn + if calendar isn't loaded... Doesn't seem to hurt, but this should + probably be investigated further. + + * gui/dialogs/comp-editor-util.c (comp_editor_contacts_to_widget): + If we have no contacts, don't bother trying to set them in the + widget. Used to pass a NULL list, which would lead to much anxiety + in callees. + + * gui/dialogs/meeting-page.c (meeting_page_fill_widgets): + If we have no potential organizers, emit a sensible warning. + + * gui/dialogs/task-page.c (init_widgets): Don't try to connect to + the "changed" signal of the GtkTextView -- we listen to the + GtkTextBuffer now. + +2003-02-20 Not Zed <NotZed@Ximian.com> + + * gui/e-itip-control.c (destroy): dont unref accounts anymore. + (change_status): itipAddress -> EAccount. + + * gui/calendar-model.c (calendar_model_destroy): dont unref + accounts anymore. + (calendar_model_value_at): simplify logic using account_list_find. + + * gui/dialogs/task-editor.c (task_editor_edit_comp): use new + itip_addresses interfaces. + + * gui/dialogs/meeting-page.c (meeting_page_construct): use new + itip_addresses_* interfaces. Should probably be using e_account + directly. + (meeting_page_finalize): dont unref the accounts list. + + * gui/dialogs/event-editor.c (event_editor_edit_comp): dont unref + accounts anymore. + + * gui/itip-utils.c (itip_addresses_get_default): Just use + e_account_list_get_default. + (itip_addresses_get): dont ref the account object, just keep 1 ref + to it. + (find_account): remove. + (itip_organizer_is_user): use e_account_list_find now. + (itip_sentby_is_user): " + (comp_limit_attendees): " + +2003-02-19 Not Zed <NotZed@Ximian.com> + + * gui/dialogs/meeting-page.c: addresses->accounts + (meeting_page_finalize): unref accounts. + + * gui/dialogs/event-editor.c: Use EAccountList api's + + * pcs/cal-backend-util.c (cal_backend_mail_account_get): Removed, + use a global EAccountList instead. + (cal_backend_mail_account_get_default): Use the global + EAccountList directly. + (cal_backend_mail_account_is_valid): And here too. + + * gui/itip-utils.h: Removed ItipAddress structure. + + * gui/itip-utils.c (itip_addresses_get): Change it to return a + global account object, so we dont need to duplicate all account + info in the calendar. + (itip_addresses_free, itip_address_free): Removed, use + g_object_unref. + (itip_addresses_get_default): Return an EAccount. + (find_account): helper to lookup accounts based on name/address. + (itip_organizer_is_user): Use helper to find account. + (itip_sentby_is_user): " + (comp_limit_attendees): " + (comp_sentby): Update to use an EAccount direclty. + (get_address): Removed, now redundant. + + * gui/e-itip-control.c: Changed priv->addresses to be accounts + EAccountList. + (destroy): unref accounts. + (find_my_address): Change to use accounts list directly, also fix + a small potential memleak. + + * gui/calendar-model.c: Change priv->addresses to be a direct + reference to an EAccountList, renamed priv->accounts. + (calendar_model_destroy): unref accounts. + (calendar_model_value_at): Use EAccountList directly to lookup + members. + + * gui/calendar-config.c (calendar_config_get_timezone) + (calendar_config_set_timezone): Fix timezone key. + (calendar_config_get_24_hour_format): Same for 24 hour format key. + (calendar_config_set_24_hour_format): And here. + (calendar_config_get_week_start_day): " + (calendar_config_set_week_start_day): " + (calendar_config_get_day_start_hour): " + (calendar_config_set_day_start_hour): " + (calendar_config_get_day_start_minute): " + (calendar_config_set_day_start_minute): " + (calendar_config_get_day_end_hour): " + (calendar_config_set_day_end_hour): " + (calendar_config_get_day_end_minute) + (calendar_config_set_day_end_minute) + (calendar_config_get_time_divisions) + (calendar_config_set_time_divisions) + (calendar_config_get_dnav_show_week_no) + (calendar_config_set_dnav_show_week_no) + (calendar_config_get_default_view) + (calendar_config_set_default_view) + (calendar_config_get_hpane_pos, calendar_config_set_hpane_pos) + (calendar_config_get_vpane_pos, calendar_config_set_vpane_pos) + (calendar_config_get_month_hpane_pos) + (calendar_config_set_month_hpane_pos) + (calendar_config_get_month_vpane_pos) + (calendar_config_set_month_vpane_pos) + (calendar_config_get_compress_weekend) + (calendar_config_set_compress_weekend) + (calendar_config_get_show_event_end) + (calendar_config_set_show_event_end) + (calendar_config_get_working_days) + (calendar_config_set_working_days) + (calendar_config_get_hide_completed_tasks) + (calendar_config_set_hide_completed_tasks) + (calendar_config_get_hide_completed_tasks_units) + (calendar_config_set_hide_completed_tasks_units) + (calendar_config_get_hide_completed_tasks_value) + (calendar_config_set_hide_completed_tasks_value) + (calendar_config_get_confirm_delete) + (calendar_config_set_confirm_delete) + (calendar_config_get_confirm_expunge) + (calendar_config_set_confirm_expunge) + (calendar_config_get_tasks_due_today_color) + (calendar_config_set_tasks_due_today_color) + (calendar_config_get_tasks_overdue_color) + (calendar_config_set_tasks_overdue_color) + (calendar_config_get_use_default_reminder) + (calendar_config_set_use_default_reminder) + (calendar_config_get_default_reminder_interval) + (calendar_config_set_default_reminder_interval) + (calendar_config_get_default_reminder_units) + (calendar_config_set_default_reminder_units) + (calendar_config_default_calendar_folder) + (calendar_config_default_tasks_folder): Update config paths for + new config convention, etc. + + * gui/alarm-notify/save.c (KEY_LAST_NOTIFICATION_TIME, etc): + Updated keys to lowercase/proper path. + (save_calendars_to_load): Store the calendars list as a gconf + list. + (get_calendars_to_load): Load the calendars list as a gconf list. + (save_blessed_program): Similar, for the blessed program list. + (is_blessed_program): Same here. + + * gui/alarm-notify/config-data.c (config_data_get_timezone): Update + the path to the timezone key. + (config_data_get_24_hour_format): Fix path to config option. + + * conduits/todo/todo-conduit.c (get_default_timezone): lower-case + the timezone key. + + * conduits/calendar/calendar-conduit.c (get_default_timezone): + lower-case the timezone key. + + * cal-client/cal-client.c (get_default_uri): Use the proper path + to get the default folder uri's. + +2003-02-23 Hans Petter Jansson <hpj@ximian.com> + + * gui/gnome-cal.c (backend_died_cb): Appease the compiler. + (gnome_calendar_update_paned_quanta): Don't actually try to set + the quantum properties. The quantum code should probably go away + entirely now that the panes update during resize, but let's keep + it around for a bit more. + + * gui/dialogs/event-editor.c (event_editor_construct): Ref & sink + the pages. + + * gui/dialogs/task-editor.c (task_editor_construct): Ref & sink + the pages. + +2003-02-23 Hans Petter Jansson <hpj@ximian.com> + + * gui/cal-search-bar.c (make_suboptions): Eliminate + e_utf8_to_gtk_string (). + + * gui/e-timezone-entry.c (e_timezone_entry_get_display_name): + Ditto. + + * gui/calendar-model.c (date_value_to_string): + e_utf8_from_locale_string () -> g_locale_to_utf8 (). + (calendar_model_value_to_string): Ditto. + + * gui/e-cell-date-edit-text.c (ecd_get_text): Ditto. + + * gui/e-itip-control.c (write_label_piece): Ditto. + + * gui/print.c (format_date): Ditto. + (print_week_view_background): Ditto. + (print_month_summary): Ditto. + (print_date_label): Ditto. + (print_comp_item): Ditto. + + * gui/alarm-notify/alarm-notify-dialog.c (write_html_heading): + Ditto. + +2003-02-22 Hans Petter Jansson <hpj@ximian.com> + + * gui/dialogs/task-details-page.c (get_widgets): Show the custom + widgets, since libglade appears to not want to do that. + + * gui/dialogs/task-page.c (clear_widgets): Make the description + field use a GtkTextView. + (task_page_fill_widgets): Ditto. + (task_page_fill_component): Ditto. + (init_widgets): Ditto. + (get_widgets): Show the custom widgets, since libglade doesn't do it. + +2003-02-22 Hans Petter Jansson <hpj@ximian.com> + + * pcs/cal-backend.c (cal_backend_unref_categories): Add an + iteration statement. Fixes hang in wombat. + +2003-02-22 Hans Petter Jansson <hpj@ximian.com> + + * gui/apps_evolution_calendar.schemas: Commit fixes from + Grzegorz Goawski <grzegol@pld.org.pl>. + +2003-02-21 Hans Petter Jansson <hpj@ximian.com> + + * gui/calendar-model.c (calendar_model_class_init): GObject, not + GtkObject. + (calendar_model_destroy): -> calendar_model_finalize (). + + * gui/calendar-view.c (calendar_view_class_init): GObject, not + GtkObject. + (calendar_view_destroy): -> calendar_view_finalize (). + + * gui/comp-editor-factory.c (comp_editor_factory_class_init): + GObject, not GtkObject. + (comp_editor_factory_destroy): -> comp_editor_factory_finalize (). + + * gui/e-day-view.c (e_day_view_long_event_button_press): + gtk_signal_disconnect () -> g_signal_handler_disconnect (). + (e_day_view_on_event_button_press): Ditto. + (e_day_view_on_long_event_click): Ditto. + (e_day_view_on_event_click): Ditto. + (e_day_view_on_event_double_click): Ditto. + (e_day_view_on_delete_appointment): Ditto. + + * gui/e-week-view.c (e_week_view_on_text_item_event): + gtk_signal_disconnect () -> g_signal_handler_disconnect (). + + * gui/alarm-notify/alarm-notify.c (AlarmNotify_RemoveCalendar): + Don't cast to GtkObject. + +2003-02-21 Dan Winship <danw@ximian.com> + + * cal-client/Makefile.am (libcal_client_la_LIBADD): depend on + libcal-util, libwombat, and libeutil + (client_test_LDADD): Remove those deps from here + + * cal-util/Makefile.am (libcal_util_la_LIBADD): depend on + libical-evolution.la + (test_recur_LDADD): Remove that dependency here (and an ancient + libversit dependency). + + * gui/alarm-notify/Makefile.am (evolution_alarm_notify_LDADD): + remove some deps + + * gui/Makefile.am (libevolution_calendar_la_LIBADD): Likewise. + +2003-02-20 Hans Petter Jansson <hpj@ximian.com> + + * gui/apps_evolution_calendar.schemas: Add GConf schemas. + + * gui/Makefile.am (EXTRA_DIST): Dist GConf schemas. + (install-data-local): Install GConf schemas. + +2003-02-20 Dan Winship <danw@ximian.com> + + * gui/Makefile.am (libevolution_calendar_la_LIBADD): + s/libemiscwidgets.a/libemiscwidgets.la/ and likewise for + libetimezonedialog + +2003-02-19 Ettore Perazzoli <ettore@ximian.com> + + * pcs/Makefile.am: Split $(CORBA_GENERATED_H) rule from the + $(CORBA_GENERATED_C) rule to that it autogens properly when using + parallel makes. + * cal-client/Makefile.am: Likewise. + + * gui/gnome-cal.c (gnome_calendar_setup_view_menus): Fix path to + the calendar's GAL Views directory. [Pointed out by Grzegorz + Goawski.] + +2003-02-11 Hans Petter Jansson <hpj@ximian.com> + + Enable printing for calendar and tasks. + + * gui/print.c: Set default font to be "Sans". Store the PrintConfig + globally instead of PaperInfo (which doesn't exist anymore). + (get_font_for_size): Don't use + gnome_font_face_find_closest_from_weight_slant() anymore, since + it's broken. Instead, use gnome_font_face_find() and put bold- and + italicness in the name to look for. Descenders can now be negative, + so have to take the absolute value to get font height. + (print_comp): Use global, persistent print configuration. + GnomePrintDialog is now a GtkDialog. Remove manual configuration + parameter shuffling. Set up page using new methods. + (print_calendar): Like print_comp(). For month view, force landscape + mode by temporarily setting it in the config, and remove the old hack. + (print_setup): Port. I'm not sure this works, but at least it + compiles now. How do I test this code path? + (print_day_view): Pass NULL for page denominator. + (print_week_view): Ditto. + (print_month_view): Ditto. + (print_year_view): Ditto. + (print_comp_item): Add missing gnome_print_beginpage(). How did this + work before? + + * gui/tasks-control.c: Store the PrintConfig globally instead of + passing individual parameters every time. Persistent too. + (print_title): Look for "Sans Bold" instead of "Times" with + GNOME_FONT_BOLD property. Don't use find_closest_from_weight_slant(). + (print_tasks): Set up page using new methods. GnomePrintMaster -> + GnomePrintJob. Get params from global config instead of args. + (tasks_control_print_cmd): Use global, persistent print configuration. + Remove manual portrait/landscape hack. GnomePrintDialog is now a + GtkDialog. Set params in global config instead of passing them to + print_tasks(). + (tasks_control_print_preview_cmd): print_tasks() now takes fewer + args. + +2003-02-11 Hans Petter Jansson <hpj@ximian.com> + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_construct): + Don't use gtk_scrolled_window_set_scrollbar_spacing() anymore. + +2003-02-10 Hans Petter Jansson <hpj@ximian.com> + + * pcs/cal-backend-file.c (save): Don't try to make an error string + from an uninitialized GnomeVFSResult. + +2003-02-10 Ettore Perazzoli <ettore@ximian.com> + + * gui/Makefile.am: Make the CORBA IDL compilation work with + parallel makes. + * gui/dialogs/Makefile.am: Likewise. + * gui/alarm-notify/Makefile.am: Likewise. + +2003-02-07 Rodney Dawes <dobey@ximian.com> + + * gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.server.in: + remove this file, as it's generated now + * gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.server.in.in: + Add this file to generate the .server.in from, with hardcoded path + * gui/alarm-notify/Makefile.am: Hardcode path in server file + +2003-02-07 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #37706 + + * gui/comp-editor-factory.c (cal_opened_cb): added PERMISSION_DENIED + case for not ending process on g_assert_not_reached. + +2003-02-06 Ettore Perazzoli <ettore@ximian.com> + + * gui/e-day-view-time-item.c + (e_day_view_time_item_show_popup_menu): Use + e_auto_kill_popup_menu_on_selection_done() instead of + e_auto_kill_popup_menu_on_hide(). + * gui/dialogs/meeting-page.c (right_click_cb): Likewise. + +2003-02-06 Dan Winship <danw@ximian.com> + + * gui/dialogs/event-page.c (make_timezone_entry): show the widget + before returning it. + + * importers/main.c (main): s/PACKAGE/GETTEXT_PACKAGE/ in gettext + init + +2003-02-05 Dan Winship <danw@ximian.com> + + * gui/Makefile.am (INCLUDES): Remove cruft. Rename ICONSDIR to + IMAGESDIR. + (gladedir, etspecdir, serverdir): Remove definitions + (libevolution_calendar_la_LDFLAGS): Remove -export-dynamic, add + -module. + + * gui/calendar-config.c: #include <string.h> + + * gui/calendar-component.c (add_creatable_item): + s/ICONSDIR/IMAGESDIR/ + + * gui/comp-util.c: #include <string.h> + + * gui/e-alarm-list.c: #include e-time-utils.h + (row_deleted): Remove unused variable. + (e_alarm_list_append): Likewise. + + * gui/e-date-time-list.c: #include e-time-utils.h, timeutil.h, + calendar-config.h + (row_deleted): Remove unused variable + (e_date_time_list_append): Likewise. + + * gui/e-day-view.c (e_day_view_unrealize): Remove unused var + (e_day_view_style_set): Likewise. + (e_day_view_set_event_font_cb): Likewise. + + * gui/e-day-view-time-item.c: #include <string.h> + (e_day_view_time_item_get_column_width): Remove unused variable. + + * gui/e-itip-control.c: #include <unistd.h> + (url_requested_cb): s/ICONSDIR/IMAGESDIR/ + + * gui/e-week-view.c (e_week_view_unrealize): Remove unused variable + (e_week_view_style_set): Likewise + + * gui/e-week-view-titles-item.c: #include string.h + * gui/itip-bonobo-control.c: Likewise + * gui/print.c: Likewise + + + * gui/alarm-notify/Makefile.am: Use privlibexecdir. + (INCLUDES): Remove cruft. + (gladedir, serversdir): Remove definitions + (evolution_alarm_notify_LDFLAGS): Remove no-longer-needed + -export-dynamic. + + * gui/alarm-notify/alarm-notify-dialog.c (write_html_heading): + s/ICONSDIR/IMAGESDIR + + * gui/alarm-notify/notify-main.c (main): Fix up gettext + initialization + + + * gui/dialogs/Makefile.am (INCLUDES): Remove cruft. Rename + ICONSDIR to IMAGESDIR. + (gladedir, etspecdir): Remove definitions + + * gui/dialogs/alarm-page.c: #include gtktreeselection.h and + gtkcellrenderertext.h + (append_reminder): Remove unused variable. + (alarm_page_fill_component): Likewise. + (alarm_page_set_summary): Likewise. + (delete_clicked_cb): Likewise. + + * gui/dialogs/comp-editor.c (make_icon_from_comp): + s/ICONSDIR/IMAGESDIR/ + + * gui/dialogs/event-page.c: #include <string.h> + + * gui/dialogs/meeting-page.c (meeting_page_construct): Remove + unused variable. + (meeting_page_fill_widgets): Likewise + + * gui/dialogs/recurrence-page.c: #include gtktreeselection.h and + gtkcellrenderertext.h + (append_exception): Remove unused variable + (fill_component): Likewise + (recurrence_page_set_summary): Likewise. + (exception_delete_cb): Likewise + + + * cal-client/Makefile.am (libcal_clientincludedir): Define in + terms of privincludedir + + * cal-client/client-test.c (main): Fix up gettext initialization + + * cal-client/cal-client.c (cal_client_construct): Likewise + + + * cal-util/Makefile.am (INCLUDES): Remove cruft. + (libcal_utilincludedir): Define in terms of privincludedir + + + * pcs/Makefile.am (INCLUDES): Remove cruft. + (pcsincludedir): Define in terms of privincludedir + + * pcs/cal-backend-file.c (cal_backend_file_finalize): Remove + unused variable + + + * importers/Makefile.am: Update this some although it's not + currently being built + +2003-02-05 Dan Winship <danw@ximian.com> + + * gui/alarm-notify/notify-main.c (main): + s/glade_gnome_init/glade_init/ + + * gui/calendar-offline-handler.c: s/BonoboXObject/BonoboObject/ + + * gui/comp-editor-factory.c: Likewise + +2003-02-05 Dan Winship <danw@ximian.com> + + * cal-util/cal-recur.c (cal_recur_nth): array of localized month + day names ("1st" - "31st") + + * gui/dialogs/recurrence-page.c (make_recur_month_num_submenu, + make_recur_month_num_menu, month_num_menu_selection_done_cb): Use + the new cal_recur_nth[] array. The way this was done before didn't + localize properly. + + From evolution-1-2-branch: + + * gui/e-itip-control.c (write_recurrence_piece): Describe + recurrences, if we can. #30993 + (set_date_label): If the meeting has recurrences, call + write_recurrence_piece after writing the start and end dates. + (write_label_piece): Wrap the timezone in <font size=-1> to + de-emphasize it a bit and try to keep the timestamp on a single + line even with big Outlook timezone names. Add an option to show + just the date, for describing the end of recurrences (since the + time in the UNTIL is the *beginning* of the last instance, which + would confuse people). + (update_item): Set the VCALENDAR's METHOD. + (ok_clicked_cb): Use update_item, not remove_item, to process a + cancelation. Part of #33875. + + * pcs/cal-backend-file.c (cal_backend_file_cancel_object): New, + handle an ICAL_METHOD_CANCEL update. + (cal_backend_file_update_objects): Call + cal_backend_file_update_object or cal_backend_file_cancel_object + as appropriate. + +2003-02-04 Hans Petter Jansson <hpj@ximian.com> + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_on_invite_others_button_draw): + Rename to e_meeting_time_selector_on_invite_others_button_expose() + and handle "expose-event" instead of "draw". + (e_meeting_time_selector_construct): The "draw" signal doesn't exist + anymore - connect to "expose-event" instead. + + * gui/dialogs/event-page.c (clear_widgets): Clear the GtkTextBuffer + for the description. + (event_page_fill_widgets): Use the GtkTextBuffer. + (event_page_fill_component): Use the GtkTextBuffer. + (init_widgets): Create a GtkTextBuffer for the GtkTextView. Set word + wrap. Connect to the "changed" signal of the model instead of the view. + +2003-02-04 Hans Petter Jansson <hpj@ximian.com> + + * gui/e-meeting-time-sel-item.c + (e_meeting_time_selector_item_paint_day_top): Use PangoLayout to + draw text. + +2003-02-02 Hans Petter Jansson <hpj@ximian.com> + + * gui/e-day-view.c (e_day_view_set_event_font_cb): Skip setting the + "font_gdk" arg for now. + (e_day_view_update_main_canvas_drag): Ditto. + + * gui/e-week-view.c (e_week_view_style_set): Ditto. + + * gui/weekday-picker.c (configure_items): Ditto. + + * gui/dialogs/event-page.c (get_widgets): Show custom widgets + manually, since the visibility specified in the Glade XML appears + to not have any effect. + + * gui/dialogs/recurrence-page.c (get_widgets): Ditto. + +2003-01-30 Ronald Kuetemeier <ronald@kuetemeier.com> + + Fixes #35572 + + * gui/alarm-notify/alarm-queue.c: set saved_notification_time to last + notification time when we update the config to last notification, so + alarms will not get trigged again if a new calendar window is opened. + +2003-01-26 Chris Toshok <toshok@ximian.com> + + * conduits/todo/todo-conduit.c: CalClient and CalComponent are + GObjects. + + * conduits/calendar/calendar-conduit.c: same. + +2003-01-26 Chris Toshok <toshok@ximian.com> + + * conduits/calendar/calendar-conduit.c (start_calendar_server): + fix warning. + (get_default_timezone): BonoboConfigDatabase -> e_config_listener. + (accept_all_cookies): remove. + (conduit_get_gpilot_conduit): remove the oaf initialization stuff. + + * conduits/todo/todo-conduit.c (start_calendar_server): + fix warning. + (get_default_timezone): BonoboConfigDatabase -> e_config_listener. + (accept_all_cookies): remove. + (conduit_get_gpilot_conduit): remove the oaf initialization stuff. + + * Makefile.am (CONDUIT_DIR): uncomment the conduit stuff. + +2003-01-26 Hans Petter Jansson <hpj@ximian.com> + + Make clicks, drags and resizes work, and pangoize remaining strings. + Fix EText placement. + + * gui/e-day-view-top-item.c (e_day_view_top_item_draw_long_event): + Use Pango. + + * gui/e-day-view.c (e_day_view_on_top_canvas_button_press): + Don't add scroll offset, it's already factored in. + (e_day_view_on_main_canvas_button_press): Ditto. + (e_day_view_on_top_canvas_motion): Ditto. + (e_day_view_on_main_canvas_motion): Ditto. + (e_day_view_reshape_long_event): Don't set the "font_gdk" property. + Its non-existence will prevent the other properties from being set as + well. + (e_day_view_reshape_day_event): Ditto. + (e_day_view_update_top_canvas_drag): Ditto. + (e_day_view_start_editing_event): ETextEventProcessor is a GObject + now. So use g_signal_stuff. + (e_day_view_check_auto_scroll): Factor out scroll offset before + checking the pointer's position relative to widget. + (e_day_view_auto_scroll_handler): Don't freeze the canvas when + scrolling - it will fail to update the canvas. If this is not + intended behaviour, it's a bug in the canvas, I think. + (e_day_view_on_main_canvas_drag_motion): Factor in the scroll offset + before checking for auto-scroll, since the function requires this. + + * gui/e-week-view.c (e_week_view_reshape_event_span): Don't set the + "font_gdk" property. Its non-existence will prevent the other + properties from being set as well. + (e_week_view_start_editing_event): ETextEventProcessor is a GObject + now. So use g_signal_stuff. + +2003-01-25 Hans Petter Jansson <hpj@ximian.com> + + Mainly making all views use PangoLayouts for text. When drawing a + PangoLayout, the draw offset is the top left corner of the layout, + not the text's baseline. Keep this in mind when viewing the + changes. I'll be brief about the exact changes, since they speak + better for themselves. + + * gui/e-day-view-time-item.c (e_day_view_time_item_get_column_width): + Use Pango. + (e_day_view_time_item_draw): Use Pango. + + * gui/e-day-view-top-item.c (e_day_view_top_item_draw): Use Pango. + (e_day_view_top_item_draw_long_event): Add some FIXME text so we can + see when this is being used. Is it in use at all? + + * gui/e-day-view.c: No longer specify an explicit X font string for + the large font. Use the main font, and change the point size. + (e_day_view_init): Use Pango. + (e_day_view_style_set): Use Pango. Comment out the gdk_font setting + for the drag text items for now. + + * gui/e-day-view.h: Use Pango. + + * gui/e-week-view-event-item.c (e_week_view_draw_time): Use Pango. + + * gui/e-week-view-main-item.c (e_week_view_main_item_draw_day): + Use Pango. + + * gui/e-week-view-titles-item.c (e_week_view_titles_item_draw): + Use Pango. + + * gui/e-week-view.c: No longer specify an explicit X font string for + the small font. Use the main font, and change the point size. + (e_week_view_init): Use Pango. + (e_week_view_destroy): Use Pango. + (get_string_width): Implemented for convenience. + (get_digit_width): Implemented for convenience. + (e_week_view_style_set): Use Pango. + (e_week_view_recalc_cell_sizes): Use Pango. + (e_week_view_get_time_string_width): Use Pango. + + * gui/e-week-view.h: Use Pango. + + Following are some random UTF-8 fixes and a crash fix. + + * gui/itip-utils.c (comp_description): Use g_locale_to_utf8 (). + + * gui/dialogs/comp-editor.c (make_title_from_comp): Return a + UTF-8 string. + + * gui/dialogs/alarm-page.c (alarm_page_set_summary): Pass UTF-8 + directly to GTK. + + * gui/dialogs/delete-comp.c (delete_component_dialog): Ditto. + + * gui/dialogs/meeting-page.c (meeting_page_fill_widgets): Ditto. + (meeting_page_construct): Ditto. + + * gui/dialogs/recurrence-page.c (recurrence_page_set_summary): Ditto. + + * gui/dialogs/event-editor.c (event_editor_finalize): Fix crash caused + by gtk_object_destroy()-ing a non-GtkObject. + +2003-01-24 Hans Petter Jansson <hpj@ximian.com> + + * gui/e-day-view.c (e_day_view_on_editing_stopped): Don't insist + appointment is updated if both old and new summary are blank. + + * gui/e-week-view.c (e_week_view_on_editing_stopped): Ditto. + + * gui/e-timezone-entry.c (on_button_clicked): Timezone dialog is now + a GtkDialog. Treat it as such. + + * gui/goto.c (ecal_event): Goto dialog is now a GtkDialog. Treat it + as such. + (goto_dialog): Ditto. + + * gui/goto-dialog.glade: Set the return IDs from the dialog buttons. + + * gui/dialogs/meeting-page.c (popup_delegate_cb): Enable the delegate + dialog. It's now a GtkDialog, so treat it like one. + (right_click_cb): Use GTK stock item, not GNOME (that doesn't work + anymore). + + * gui/e-delegate-dialog.glade: Set the return IDs from dialog buttons. + + * gui/print.c (print_calendar): Correct the print dialog init. Code + is still not enabled, though. + + * gui/tasks-control.c (print_tasks): Add a warning about printing + being disabled. + +2003-01-24 Ettore Perazzoli <ettore@ximian.com> + + * gui/dialogs/Makefile.am (iconsdir): Remove, this is now defined + in configure.in. + + * gui/Makefile.am (iconsdir): Remove; this is now defined in + configure.in. + + * gui/alarm-notify/Makefile.am (iconsdir): Remove; this is now + defined in configure.in. + +2003-01-23 Hans Petter Jansson <hpj@ximian.com> + + * gui/dialogs/event-page.c (get_widgets): GTK_OBJECT -> G_OBJECT cast. + + * gui/dialogs/alarm-page.c (get_widgets): Ditto. + + * gui/dialogs/meeting-page.c (get_widgets): Ditto. + + * gui/dialogs/recurrence-page.c (get_widgets): Ditto. + + * gui/dialogs/schedule-page.c (get_widget): Ditto. + + * gui/dialogs/task-details-page.c (get_widget): Ditto. + + * gui/dialogs/task-page.c (get_widget): Ditto. + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_construct): Add a + FIXME comment to think about. + + * gui/dialogs/comp-editor.c (comp_editor_merge_ui): Add a terminating + NULL to the concatenation. + +2003-01-23 Hans Petter Jansson <hpj@ximian.com> + + Fixes some trivial, but distracting, warnings. + + * gui/calendar-config.c (on_timezone_set): Fix constness. + + * gui/e-timezone-entry.c (on_button_clicked): Fix constness. + + * gui/dialogs/event-page.c (contacts_changed_cb): Fix constness. + + * gui/dialogs/task-page.c (contacts_changed_cb): Fix constness. + + * gui/e-itip-control.c (start_default_server): Cast callback with + G_CALLBACK (). + + * gui/dialogs/schedule-page.c (init_widgets): Cast callback with + G_CALLBACK (). + + * gui/calendar-offline-handler.c (impl_dispose): Takes GObject, + not GtkObject. + (impl_finalize): Ditto. + + * gui/calendar-view.c (calendar_view_edit): Now takes parent window + as second arg. + + * gui/e-meeting-model.c (select_names_ok_cb): Fix constness. + (get_select_name_dialog): Cast callback to BonoboListenerCallbackFn. + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_options_menu_position_callback): Add the + push_in arg to arg list. This was crash-prone before. + (e_meeting_time_selector_autopick_menu_position_callback): Ditto. + + * gui/alarm-notify/alarm-notify-dialog.c: Include e-unicode.h. + +2003-01-23 Ettore Perazzoli <ettore@ximian.com> + + * gui/Makefile.am (componentdir): Removed definition; this is now + defined in configure.in. + +2003-01-22 Ettore Perazzoli <ettore@ximian.com> + + * pcs/cal-backend.c (cal_backend_ref_categories): Do not put the + category in both the changed_categories and the categories hashes; + fixes a double-free when finalizing the CalBackend. + +2003-01-22 Ettore Perazzoli <ettore@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_setup_view_menus): Use + EVOLUTION_GALVIEWSDIR. + + * gui/e-tasks.c (e_tasks_setup_view_menus): Use + EVOLUTION_GALVIEWSDIR. + + * cal-util/Makefile.am: Install libcal-util.la in $(privlibdir) + instead of $(libdir). + + * gui/dialogs/comp-editor.c (setup_widgets): Get + evolution-comp-editor.xml from EVOLUTION_UIDIR. + (comp_editor_merge_ui): Get the file in EVOLUTION_UIDIR. + + * gui/tasks-control.c (tasks_control_activate): Get + evolution-tasks.xml from EVOLUTION_UI_DIRECTORY. + + * gui/calendar-commands.c (calendar_control_activate): Get + evolution-calendar.xml from EVOLUTION_UI_DIRECTORY. + + * pcs/Makefile.am (pcsincludedir): Version using $(BASE_VERSION). + + * importers/Makefile.am: Install evolution-calendar-importer in + $(libexecdir)/evolution/$(BASE_VERSION). + (sounddir): Remove. + + * gui/dialogs/Makefile.am (iconsdir): Version using + $(BASE_VERSION). + (gladedir): Likewise. + (etspecdir): Likewise. + + * gui/Makefile.am (help_base): Remove. + (install-data-local): Do not make the $(help_base)/C directory. + (etspecdir): Version using $(BASE_VERSION). + (gladedir): Likewise. + (iconsdir): Likewise. + (INCLUDES): Update the EVOLUTION_IMAGESDIR define to be versioned, + and add a -DEVOLUTION_GALVIEWSDIR. + + * cal-util/Makefile.am: Install evolution-alarm-notify in + $(libexecdir)/evolution/$(BASE_VERSION). + + * cal-util/Makefile.am (libcal_utilincludedir): Version using + $(BASE_VERSION). + * gui/alarm-notify/Makefile.am (iconsdir): Likewise. + (gladedir): Likewise. + + * cal-client/Makefile.am: Install libcal-client.la in privlibdir + instead of libdir. + (libcal_clientincludedir): Version using $(BASE_VERSION). + +2003-01-18 Hans Petter Jansson <hpj@ximian.com> + + * gui/print.c (print_calendar): Create a GnomePrintDialog, + not a GnomePrinterDialog. They're different things. Patch from + Chema. + +2003-01-17 Dan Winship <danw@ximian.com> + + * pcs/cal-backend.c: Move some non-file-backend-specific stuff + from cal-backend-file here so it can be shared with other + backends. + (CalBackendPrivate): add this, containing the categories hashes + and the (formerly public) clients list. + (cal_backend_init, cal_backend_finalize): Handle backend->priv. + (cal_destroy_cb): Simplify this (and redo it as a weak notify + func) + (cal_backend_add_cal): Keep a weak ref on the cal rather than + connecting to its "destroy" signal. Call notify_categories_changed + to let the new cal know about them. + (get_object): Default implementation of cal_backend_get_object. + that calls cal_component_get_as_string on the return value of + cal_backend_get_object_component. + (cal_backend_notify_mode, cal_backend_notify_update, + cal_backend_notify_remove, cal_backend_notify_error): Notify each + Cal about something. + (cal_backend_ref_categories, cal_backend_unref_categories): + Maintain a list of categories that are used by components in the + backend, and trigger categories_changed notifications as needed. + + * pcs/cal-backend-file.c: Remove stuff that was moved to + CalBackend (notify funcs, category handling, get_object + implementation) + +2003-01-16 Hans Petter Jansson <hpj@ximian.com> + + * gui/e-alarm-list.[ch]: Implement EAlarmList as CalComponentAlarm + list with a GtkTreeModel interface. + + * gui/Makefile.am: Add e-alarm-list.[ch]. + + * gui/dialogs/alarm-page.[ch]: Use GtkTreeView with the new + EAlarmList as model for the alarm list. Update copyright. + + * gui/dialogs/recurrence-page.[ch]: Update copyright. + (free_exception_date_time): Removed. + (fill_exception_widgets): Kill a lingering clist operation. + +2003-01-15 Hans Petter Jansson <hpj@ximian.com> + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_construct): + Create accel groups for popup menus. Fixes crash. + + * gui/e-date-time-list.[ch]: Implement EDateTimeList as + CalComponentDateTime list with a GtkTreeModel interface. + + * gui/Makefile.am: Add e-date-time-list.[ch]. + + * gui/dialogs/recurrence-page.c: Use GtkTreeView with the new + EDateTimeList as model for the exception list. + + * gui/e-day-view.c: Silence warnings caused by missing casts. + + * gui/e-week-view.c: Silence warnings caused by missing casts. + +2003-01-15 Rodney Dawes <dobey@ximian.com> + + * gui/Makefile.am: Added libevolution_calendar_la_LDFLAGS, and + avoid versioning the shlib component + +2003-01-14 Ettore Perazzoli <ettore@ximian.com> + + * cal-client/Makefile.am (CORBA_SOURCES_GENERATED): Renamed from + CORBA_GENERATED. + (CORBA_GENERATED): New, put both $(CORBA_SOURCES_GENERATED) and + $(CORBA_HEADERS_GENERATED) in it. + (BUILT_SOURCES): Put $(CORBA_GENERATED) in here. + +2003-01-14 Hans Petter Jansson <hpj@ximian.com> + + * gui/e-calendar-table.c (tasks_popup_menu): Cast signal handlers + to GtkSignalFunc, avoid warnings. + + * gui/gnome-cal.c (set_view): Only set view ID if we have an instance. + +2003-01-14 Ettore Perazzoli <ettore@ximian.com> + + * cal-util/Makefile.am (EXTRA_DIST): cal-util-marshal.list. + + * Makefile.am: Comment out the CONDUIT_DIR stuff for now. + +2003-01-14 Rodney Dawes <dobey@ximian.com> + + * gui/gnome-cal.c: Use GtkPaned instead of EPaned + +2003-01-14 Hans Petter Jansson <hpj@ximian.com> + + * gui/e-day-view.c (e_day_view_init): Work around canvas crashes + by ensuring rectangles have an initial width. + +2003-01-13 Ettore Perazzoli <ettore@ximian.com> + + * gui/config-control-factory.h: Removed. + * gui/config-control-factory.c: Removed. + + * gui/itip-bonobo-control.c: Renamed from itip-control-factory.c. + (itip_bonobo_control_new): New. + (itip_control_factory_init): Removed. + + * gui/itip-bonobo-control.h: Renamed from itip-control-factory.h. + + * gui/tasks-control-factory.c: Removed. + * gui/tasks-control-factory.h: Removed. + + * gui/control-factory.c (control_factory_init): Removed. + + * gui/Makefile.am: Updated to build everything as + libevolution-calendar.so and install in the COMPONENTDIR. + + * gui/GNOME_Evolution_Calendar.server.in.in: Updated to build the + component as a shared library. + + * gui/main.c (main): Removed. + + * gui/calendar-component.c (calendar_component_get_object): New. + (owner_set_cb): Do not store the shell pointer in shells. + (owner_unset_cb): Do not remove the shell pointer from shells; + instead, just set global_shell_client to NULL. + + * gui/calendar-component.h: Renamed from component-factory.h. + * gui/calendar-component.c: Renamed from component-factory.c. + +2003-01-10 Ettore Perazzoli <ettore@ximian.com> + + * importers/icalendar-importer.c (connect_to_shell): + CORBA_Object_release() the CORBA shell. + +2003-01-09 Dan Winship <danw@ximian.com> + + * gui/dialogs/recurrence-page.c (make_recur_month_num_submenu, + make_recur_month_num_menu, month_num_menu_selection_done_cb): Use + the new cal_recur_nth[] array. The way this was done before didn't + localize properly. + + * cal-util/cal-recur.c (cal_recur_nth): array of localized month + day names ("1st" - "31st") + + * cal-util/cal-component.c (cal_component_set_recurid): Allow + recur_id to be NULL to clear the recurrence id. (Based on a story + by JP on evolution-1-2-recurid-branch) + + * gui/print.c: Remove unused gnome-print-copies.h #include + + * pcs/query.c (query_new): Use g_object_weak_ref rather than + connecting to "destroy" (which doesn't actually exist on a + CalBackend) + (backend_destroyed_cb): Update prototype. + +2003-01-08 Ettore Perazzoli <ettore@ximian.com> + + * gui/alarm-notify/Makefile.am: Icons are now in + $(datadir)/evolution/images instead of + $(datadir)/images/evolution. + * gui/Makefile.am: Likewise. + * gui/dialogs/Makefile.am: Likewise. + +2003-01-06 Dan Winship <danw@ximian.com> + + * idl/Makefile.am: remove idldir definition. (It's defined in + configure.in now) + +2002-12-19 Hans Petter Jansson <hpj@ximian.com> + + * gui/calendar-commands.c (calendar_control_deactivate): + Replace gtk_signal_disconnect_by_data() with + g_signal_handlers_disconnect_matched(). Former takes GtkObject, + latter takes GObject. + + * gui/calendar-model.c (calendar_model_destroy): Ditto. + (update_query): Ditto. + (calendar_model_set_cal_client): Ditto. + + * gui/e-day-view.c (e_day_view_destroy): Ditto. + (update_query): Ditto. + (e_day_view_set_cal_client): Ditto. + + * gui/e-tasks.c (query_eval_error_cb): Ditto. + (query_query_done_cb): Ditto. + + * gui/e-week-view.c (e_week_view_destroy): Ditto. + (update_query): Ditto. + (e_week_view_set_cal_client): Ditto. + + * gui/gnome-cal.c (update_query): Ditto. + (gnome_calendar_destroy): Ditto. + + * gui/tasks-control.c (tasks_control_deactivate): Ditto. + + * gui/e-comp-editor-registry.c (foreach_close_cb): Replace + gtk_signal_handler_(un)block_by_data() with + g_signal_handlers_(un)block_matched(). Former takes GtkObject, latter + takes GObject. + + * gui/dialogs/alarm-page.c (alarm_page_get_type): Replace with + E_MAKE_TYPE(). + (alarm_page_class_init): Use GObject as base class instead of + GtkObject, and set up finalization instead of destroy handler. + (alarm_page_destroy): Change to alarm_page_finalize() and assume + parent is GObject, not GtkObject. + (alarm_page_new): Use g_object_new(), not gtk_type_new(). + + * gui/dialogs/event-page.c: Same general changes as above file. + (update_time): Replace gtk_signal_handler_(un)block_by_data() + with g_signal_handlers_(un)block_matched(). + (clear_widgets): Ditto. + (times_updated): Ditto. + + * gui/dialogs/recurrence-page.c: Same general changes as above file. + (clear_widgets): Replace gtk_signal_handler_(un)block_by_data() + with g_signal_handlers_(un)block_matched(). + (append_exception): Ditto. + (fill_ending_date): Ditto. + (recurrence_page_fill_widgets): Ditto. + + * gui/dialogs/comp-editor.c: Same general changes as above file. + (comp_editor_finalize): Replace gtk_signal_disconnect_by_data() + with g_signal_handlers_disconnect_matched(). + (comp_editor_remove_page): Ditto. + + * gui/dialogs/event-editor.c: Same general changes as above file. + * gui/dialogs/meeting-page.c: Same general changes as above file. + * gui/dialogs/schedule-page.c: Same general changes as above file. + * gui/dialogs/task-details-page.c: Same general changes. + * gui/dialogs/task-editor.c: Same general changes as above file. + * gui/dialogs/task-page.c: Same general changes as above file. + * gui/dialogs/e-delegate-dialog.c: Same general changes. + +2002-12-16 Jeffrey Stedfast <fejj@ximian.com> + + * gui/e-itip-control.c (write_html): Use camel_text_to_html() + instead. + +2002-12-16 Jeffrey Stedfast <fejj@ximian.com> + + * gui/e-itip-control.c (write_html): Correctly convert text.value + into HTML here (ie, don't pass "<i>None</i>" into e_text_to_html() + if text.value is NULL). + +2002-12-06 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #35003 + + * gui/misc.[ch] (get_uri_without_password): new function for + removing the password from the CalClient's uris. + + * gui/gnome-cal.c (client_cal_opened_cb): use the URI returned by + get_uri_without_password for messages. + (backend_error_cb): likewise. + (backend_died_cb): likewise. + (gnome_calendar_open): likewise. + (open_error, method_error, permission_error): likewise. + + * gui/e-tasks.c (e_tasks_open): hide the password from the URI + being displayed in messages. + (backend_error_cb): likewise. + +2002-12-06 Hans Petter Jansson <hpj@ximian.com> + + * cal-client/cal-query.c (cal_query_done_status_enum_get_type): + Implement GType for this enumeration. + (cal_query_class_init): Use the enumeration instead of the + abstract one. + + * cal-client/cal-query.h: Add type macro and proto for enum. + +2002-12-06 Hans Petter Jansson <hpj@ximian.com> + + * gui/component-factory.c (create_view): Pass the env argument to + bonobo_control_set_property (). + + * gui/e-meeting-model.c (class_init): We're no longer derived from + GtkObject, so use GObject class methods instead. destroy->finalize. + (destroy): Zapped. + (finalize): Implement based on old destroy (). + +2002-12-06 Hans Petter Jansson <hpj@ximian.com> + + * cal-client/cal-client.c (cal_client_open_status_enum_get_type): + Create a non-abstract enumeration type derived from GEnum. + (cal_client_set_mode_status_enum_get_type): Ditto. + (cal_mode_enum_get_type): Ditto. + (cal_client_class_init): Use our enumerations and not the abstract + one. + (cal_client_finalize): Don't destroy factories, since the CalClient + doesn't own them anymore. They're shared between CalClients now. + (get_factories): Implement. Move the factory setup code here from + cal_client_construct (), and cache the factories. This is hopefully + temporary, until wombat goes away or is fixed. + (cal_client_construct): Most of the code moved to get_factories (). + + * cal-client/cal-client.h: Add enumeration type macros and protos. + + * gui/cal-search-bar.c (cal_search_bar_get_type): Removed in favour + of E_MAKE_TYPE, which uses GObject calls. + (cal_search_bar_class_init): Use g_type_class_peek_parent (). + + * gui/calendar-model.c (calendar_model_get_type): + (calendar_model_class_init): Ditto, like above file. + * gui/calendar-view.c (calendar_view_get_type): + (calendar_view_class_init): Ditto. + * gui/e-calendar-table.c (e_calendar_table_get_type): + (e_calendar_table_class_init): Ditto. + * gui/e-comp-editor-registry.c (e_comp_editor_registry_get_type): + (class_init): Ditto. + * gui/e-day-view-main-item.c (e_day_view_main_item_get_type): + (e_day_view_main_item_class_init): Ditto. + * gui/e-day-view-time-item.c (e_day_view_time_item_get_type): + (e_day_view_time_item_class_init): Ditto. + * gui/e-day-view-top-item.c (e_day_view_top_item_get_type): + (e_day_view_top_item_class_init): Ditto. + * gui/e-day-view.c (e_day_view_get_type): + (e_day_view_class_init): Ditto. + * gui/e-itip-control.c (e_itip_control_get_type): + (class_init): Ditto. + * gui/e-meeting-attendee.c (e_meeting_attendee_get_type): + (class_init): Ditto. + * gui/e-meeting-model.c (e_meeting_model_get_type): + (class_init): Ditto. + * gui/e-meeting-time-sel-item.c + (e_meeting_time_selector_item_get_type): + (e_meeting_time_selector_item_class_init): Ditto. + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_get_type): + (e_meeting_time_selector_class_init): Ditto. + * gui/e-timezone-entry.c (e_timezone_entry_get_type): + (e_timezone_entry_class_init): Ditto. + * gui/e-week-view-event-item.c (e_week_view_event_item_get_type): + (e_week_view_event_item_class_init): Ditto. + * gui/e-week-view-main-item.c (e_week_view_main_item_get_type): + (e_week_view_main_item_class_init): Ditto. + * gui/e-week-view-titles-item.c (e_week_view_titles_item_get_type): + (e_week_view_titles_item_class_init): Ditto. + * gui/gnome-cal.c (gnome_calendar_get_type): + (gnome_calendar_class_init): Ditto. + * gui/weekday-picker.c (weekday_picker_get_type): + (weekday_picker_class_init): Ditto. + + * gui/e-week-view.c (e_week_view_get_type): + (e_week_view_class_init): Ditto, but parent_class init was moved + from get_type() to class_init(). + + * gui/calendar-view-factory.c (calendar_view_factory_get_type): + (calendar_view_factory_class_init): Ditto, and set up finalize + callback instead of destroy. + (calendar_view_factory_finalize): It's a GObject, so implement this. + (celendar_view_factory_destroy): Move code to _finalize() and remove. + + * gui/main.c (init_bonobo): Remove extraneous bonobo_activation_init(). + +2002-11-27 Not Zed <NotZed@Ximian.com> + + * gui/itip-utils.[ch]: run fix.sh over this. + + * gui/dialogs/*.[ch]: run fix.sh over all of this. + +2002-11-26 Richard Li <Richard.Li@Sun.COM> + + * cal-client/cal-client.c (cal_client_construct): removed extra call + to CORBA_exception_init. + +2002-11-22 Not Zed <NotZed@Ximian.com> + + * gui/dialogs/delete-comp.c (delete_component_dialog): Changed + e_messagebox -> gtk_messagedialog. + +2002-11-21 Not Zed <NotZed@Ximian.com> + + * gui/component-factory.c (create_view): pass type to + bonobo_control_set_property. + +2002-11-20 Not Zed <NotZed@Ximian.com> + + * gui/Makefile.am (EXTRA_DIST): fix typo, servers_in_files -> + server_in_files. + +2002-11-19 Ettore Perazzoli <ettore@ximian.com> + + * Makefile.am: Added rule to generate + GNOME_Evolution_Calendar.server.in from + GNOME_Evolution_Calendar.server.in.in, substituting @LIBEXECDIR@. + Also, install evolution-calendar in $libexecdir instead of + $bindir. + + * gui/GNOME_Evolution_Calendar.server.in.in: Renamed from + GNOME_Evolution_Calendar.server.in. Prepended the executable name + with @LIBEXECDIR@. + +2002-11-19 Not Zed <NotZed@Ximian.com> + + * gui/e-meeting-model.c (get_select_name_dialog): pass type to + bonobo_widget::set_property. + (select_names_ok_cb): ", for get_property. + + * gui/dialogs/e-delegate-dialog.c (e_delegate_dialog_construct): + pass type to bonobo_widget::set_property & plug small leak. + (e_delegate_dialog_get_delegate): ", for get_property. + (e_delegate_dialog_get_delegate_name): " + + * gui/dialogs/comp-editor-util.c (comp_editor_contacts_to_widget): + pass type to bonobo_widget::set_property. + (comp_editor_contacts_to_component): ", for get_property + +2002-11-16 Chris Toshok <toshok@ximian.com> + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_style_set): + use new e_table_header_compute_height signature. + +2002-11-15 Rodney Dawes <dobey@ximian.com> + + * gui/component-factory.c: Use bonobo_main_quit instead of gtk + +2002-11-13 Federico Mena Quintero <federico@ximian.com> + + * cal-client/cal-query.c: #include <string.h> + (obj_removed_cb): Fixed prototype. + + * cal-client/cal-client.c (get_objects_atomically): Fix use of + g_signal_handler_disconnect(). + + * cal-client/client-test.c (create_client): Add G_CALLBACK casts. + +2002-11-12 Federico Mena Quintero <federico@ximian.com> + + * pcs/cal-backend-util.c: #include <string.h> + + * pcs/cal.c: Fixed prototypes of the CORBA method implementations. + + * pcs/cal-backend-file.c (cal_backend_file_dispose): Added a + dispose method. + (cal_backend_file_get_free_busy): Converted to use EConfigListener + rather than BonoboConfigDatabase. + + * gui/alarm-notify/alarm-notify.c: #include <string.h>, fix use of + g_hash_table_lookup_extended(). + + * gui/alarm-notify/alarm-notify-dialog.c: Substitute deprecated + GTK+ functions for new ones. + + * gui/alarm-notify/alarm-queue.c: Likewise. + + * gui/alarm-notify/notify-main.c: #include <string.h>, + <gtk/gtkmain.h>. + + * gui/alarm-notify/save.c: #include <string.h>. + +2002-11-08 Ettore Perazzoli <ettore@ximian.com> + + * gui/calendar-commands.c (calendar_control_deactivate): Use + g_object_set_data(..., NULL) instead of gtk_object_remove_data(). + + * gui/calendar-commands.c: Use g_object_{set,get}_* functions + instead of gtk_object_{set,get}_*. + * gui/calendar-commands.c: Likewise. + * gui/calendar-config.c: Likewise. + * gui/control-factory.c: Likewise. + * gui/e-calendar-table.c: Likewise. + * gui/e-comp-editor-registry.c: Likewise. + * gui/e-day-view-main-item.c: Likewise. + * gui/e-day-view-time-item.c: Likewise. + * gui/e-day-view-top-item.c: Likewise. + * gui/e-day-view.c: Likewise. + * gui/e-meeting-attendee.c: Likewise. + * gui/e-meeting-model.c: Likewise. + * gui/e-meeting-time-sel-item.c: Likewise. + * gui/e-meeting-time-sel.c: Likewise. + * gui/e-week-view-event-item.c: Likewise. + * gui/e-week-view-layout.c: Likewise. + * gui/e-week-view-main-item.c: Likewise. + * gui/e-week-view-titles-item.c: Likewise. + * gui/e-week-view.c: Likewise. + * gui/gnome-cal.c: Likewise. + * gui/print.c: Likewise. + +2002-11-08 Ettore Perazzoli <ettore@ximian.com> + + * gui/calendar-commands.c: Use g_object_ref()/g_object_unref() + instead of gtk_object_ref/gtk_object_unref(). + * gui/calendar-config.c: Likewise. + * gui/calendar-model.c: Likewise. + * gui/comp-editor-factory.c: Likewise. + * gui/comp-util.c: Likewise. + * gui/e-calendar-table.c: Likewise. + * gui/e-day-view.c: Likewise. + * gui/e-itip-control.c: Likewise. + * gui/e-meeting-model.c: Likewise. + * gui/e-meeting-time-sel.c: Likewise. + * gui/e-tasks.c: Likewise. + * gui/e-timezone-entry.c: Likewise. + * gui/e-week-view.c: Likewise. + * gui/gnome-cal.c: Likewise. + * gui/goto.c: Likewise. + * gui/itip-utils.c: Likewise. + * gui/print.c: Likewise. + * gui/tasks-control.c: Likewise. + * gui/tasks-migrate.c: Likewise. + + * gui/cal-search-bar.c: Use g_object_new() instead of + gtk_type_new(). + * gui/calendar-model.c: Likewise. + * gui/calendar-view-factory.c: Likewise. + * gui/calendar-view.c: Likewise. + * gui/calendar-view.c: Likewise. + * gui/comp-editor-factory.c: Likewise. + * gui/e-calendar-table.c: Likewise. + * gui/e-cell-date-edit-text.c: Likewise. + * gui/e-comp-editor-registry.c: Likewise. + * gui/e-day-view.c: Likewise. + * gui/e-itip-control.c: Likewise. + * gui/e-meeting-attendee.c: Likewise. + * gui/e-meeting-attendee.c: Likewise. + * gui/e-meeting-model.c: Likewise. + * gui/e-meeting-time-sel.c: Likewise. + * gui/e-tasks.c: Likewise. + * gui/e-timezone-entry.c: Likewise. + * gui/e-week-view.c: Likewise. + * gui/gnome-cal.c: Likewise. + * gui/weekday-picker.c: Likewise. + + * gui/e-itip-control.c (get_servers): g_object_unref the + shell_client instead of using bonobo_object_unref(). + + * gui/component-factory.c (owner_set_cb): Use + evolution_shell_client_corba_objref() instead of + bonobo_object_corba_objref(). + +2002-11-08 Ettore Perazzoli <ettore@ximian.com> + + * gui/calendar-commands.c: Use g_signal_connect() instead of + gtk_signal_connect(). + * calendar-commands.c: Likewise. + * calendar-config.c: Likewise. + * calendar-model.c: Likewise. + * comp-editor-factory.c: Likewise. + * component-factory.c: Likewise. + * control-factory.c: Likewise. + * e-calendar-table.c: Likewise. + * e-comp-editor-registry.c: Likewise. + * e-day-view-time-item.c: Likewise. + * e-day-view.c: Likewise. + * e-itip-control.c: Likewise. + * e-meeting-model.c: Likewise. + * e-meeting-time-sel.c: Likewise. + * e-tasks.c: Likewise. + * e-timezone-entry.c: Likewise. + * e-week-view.c: Likewise. + * gnome-cal.c: Likewise. + * goto.c: Likewise. + * tasks-control.c: Likewise. + * tasks-migrate.c: Likewise. + * weekday-picker.c: Likewise. + +2002-11-08 Ettore Perazzoli <ettore@ximian.com> + + * gui/calendar-offline-handler.c + (calendar_offline_handler_class_init): GObjectified. + (impl_finalize): Finalize impl. + (impl_dispose): Dispose impl. + (calendar_offline_handler_new): Use g_object_new(). + (backend_cal_opened): use g_signal_connect() instead of + gtk_signal_connect(). + (backend_go_offline): Likewise. + (backend_cal_opened): g_object_unref() instead of + gtk_object_unref(). + (backend_go_offline): Likewise. + +2002-11-08 Rodrigo Moya <rodrigo@ximian.com> + + * importers/evolution-calendar-importer.h: use GLib macros. + + * importers/main.c (init_importer): use bonobo_generic_factory_new, + not bonobo_generic_factory_new_multi. + (main): don't use libgnome functions. + +2002-11-07 Rodrigo Moya <rodrigo@ximian.com> + + * cal-client/client-test.c: don't use GTK, we don't need it. + +2002-11-07 JP Rosevear <jpr@ximian.com> + + * Initial port of gui/ subdir to GNOME 2 + +2002-11-07 Rodrigo Moya <rodrigo@ximian.com> + + * importers/icalendar-importer.c: removed non-existant headers. + + * importers/Makefile.am: changes for BonoboActivation. + + * gui/GNOME_Evolution_Calendar.server.in: install to $libdir, not + $datadir. + +2002-11-07 Rodrigo Moya <rodrigo@ximian.com> + + * cal-client/query-listener.[ch]: converted to BonoboObject. + + * gui/dialogs/comp-editor-util.c (parse_contact_string): use glib's + g_utf8_strchr. + + * gui/dialogs/delete-comp.c: removed non-existant headers. Use + GtkStock instead of GnomeStock. + + * gui/dialogs/e-delegate-dialog.c: converted to BonoboActivation. + (e_delegate_dialog_construct): adapted to changes in glade_xml_new. + +2002-11-07 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal.[ch]: converted to BonoboObject. + (impl_Cal_get_query): bonobo_object_unref the query returned by + cal_backend_get_query if we can't duplicate it. + + * pcs/query.[ch]: + * pcs/cal-factory.[ch]: converted to BonoboObject. + + * pcs/query-backend.[ch]: + * pcs/cal-backend-file.[ch]: + * pcs/cal-backend.[ch]: GObjectify. + +2002-11-06 Rodrigo Moya <rodrigo@ximian.com> + + * gui/cal-prefs-dialog.c: #include gtkoptionmenu.h. + (cal_prefs_dialog_new): adapted to changes in glade_xml_new. + + * gui/dialogs/event-page.h: + * gui/dialogs/meeting-page.h: + * gui/dialogs/recurrence-page.h: + * gui/dialogs/schedule-page.h: + * gui/dialogs/task-details-page.h: + * gui/dialogs/task-page.h: + * gui/cal-prefs-dialog.h: use correctly the macros. + + * gui/dialogs/cancel-comp.c: + * gui/dialogs/changed-comp.c: + * gui/dialogs/comp-editor-page.c: + * gui/gnome-cal.h: removed non-existent headers. + + * gui/dialogs/comp-editor.c: remove non-existent headers. + (close_dialog): gtk_widget_destroy the widget. + (setup_widgets, comp_editor_merge_ui): use BonoboWindow correctly. + (comp_editor_set_cal_client, comp_editor_send_comp, + comp_editor_edit_comp): use G_OBJECT_GET_CLASS for + getting the class of an object. + + * gui/dialogs/comp-editor-page.c (comp_editor_page_class_init): + use g_signal_* functions. + + * gui/dialogs/comp-editor-util.c: converted to BonoboActivation. + + * gui/dialogs/comp-editor.h: #include bonobo-window.h, not + bonobo-win.h. + +2002-11-06 Rodrigo Moya <rodrigo@ximian.com> + + * gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.server.in: + * gui/GNOME_Evolution_Calendar.server.in: renmaed .oaf.in files. + + * gui/alarm-notify/Makefile.am: + * gui/Makefile.am: fixed rules for .server files. + +2002-11-06 Rodrigo Moya <rodrigo@ximian.com> + + * gui/dialogs/comp-editor-util.[ch] + (comp_editor_connect_contacts_changed): don't return a + Bonobo_EventSource_ListenerId, since it does not exist anymore, + and was not even being used. + + * gui/e-timezone-entry.h: use GLib macros. + + * gui/dialogs/*.glade: + * gui/alarm-notify/*.glade: + * gui/*.glade: converted to Glade2 format. + +2002-11-05 Rodrigo Moya <rodrigo@ximian.com> + + * gui/dialogs/alarm-options.c (alarm_options_dialog_run): adapted to + to new glade_xml_new signature. + + * gui/calendar-model.h: + * gui/dialogs/comp-editor-page.h: + * gui/dialogs/alarm-page.[ch]: removed non-existant header files. + + * gui/dialogs/comp-editor-util.h: added missing headers. + +2002-11-05 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-backend.c: use libxml2 headers. + + * gui/alarm-notify/Makefile.am: + * gui/dialogs/Makefile.am: + * gui/Makefile.am: s/XML_I18N/INTLTOOL. Fixed execution of + $(ORBIT_IDL). + + * gui/alarm-notify/alarm-notify.[ch]: converted to BonoboObject. + + * gui/alarm-notify/alarm-notify-dialog.c: compilation fixes. + (alarm_notify_dialog): adapted to new glade_xml_new signature. + + * gui/alarm-notify/alarm-queue.c: ported to BonoboActivation and + GtkStock and GtkDialog. + + * gui/alarm-notify/notify-main.c: ported to BonoboActivation and + use GObject functions instead of GtkObject ones. + + * gui/alarm-notify/save.h: removed BonoboConfig related functions. + + * gui/alarm-notify/config-data.c: use GObject functions instead of + GtkObject ones. + + * TODO.port: added file for keeping track of disabled things while we + port. + +2002-11-04 Rodrigo Moya <rodrigo@ximian.com> + + * cal-util/cal-util-marshal.list: added new marshallers. + + * cal-client/cal-client.c (get_objects_atomically): fixed calls to + g_signal_handler_disconnect_by_func. + (cal_client_class_init): fixed typos. + + * cal-client/cal-client-multi.[ch]: + * cal-client/cal-client-types.c: + * cal-client/cal-query.[ch]: ported to GObject. + + * cal-client/cal-listener.[ch]: converted to BonoboObject. + + * cal-client/Makefile.am: + * pcs/Makefile.am: fixed flags for orbit-idl + +2002-11-04 Rodrigo Moya <rodrigo@ximian.com> + + * cal-util/Makefile.am: + * cal-util/cal-util-marshal.list: added marshallers. + + * cal-client/cal-client.[ch]: ported to GObject. + +2002-11-04 Rodrigo Moya <rodrigo@ximian.com> + + * cal-util/cal-component.[ch]: ported to GObject. + + * cal-util/cal-util.c (cal_util_generate_alarms_for_comp): use + g_object_* instead of gtk_object_*. + +2002-11-03 Rodrigo Moya <rodrigo@ximian.com> + + * cal-client/cal-client.c (get_default_uri): use EConfigListener + instead of BonoboConfig. + + * cal-client/cal-client.c: + * cal-client/cal-listener.[ch]: + * cal-client/query-listener.c: warning free. + +2002-11-03 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-backend-util.[ch]: don't use BonoboConfig, but + EConfigListener. + + * gui/calendar-config.c: use /apps/Evolution prefix for all + configuration keys. + +2002-10-31 Rodrigo Moya <rodrigo@ximian.com> + + * cal-util/cal-component.[ch]: + * cal-util/cal-recur.h: + * cal-util/cal-util.[ch]: + * cal-client/cal-client.h: + * cal-client/cal-client-multi.h: + * cal-client/cal-client-types.[ch]: + * cal-client/cal-listener.h + * cal-client/cal-query.[ch]: + * cal-client/query-listener.h: + * pcs/cal.h: + * pcs/cal-backend.[ch]: + * pcs/cal-backend-file.h: + * pcs/cal-backend-util.h: + * pcs/cal-common.h: + * pcs/cal-factory.h: + * pcs/query.[ch]: + * pcs/query-backend.[ch]: started GNOME 2 porting. + cal-util, cal-client and pcs compiled ok. + + * cal-client/cal-client.c (cal_client_construct): + * pcs/cal-factory.c: use b-a instead of OAF and bonobo-config + instead of bonobo-conf. + +2002-10-29 Rodrigo Moya <rodrigo@ximian.com> + + * gui/gnome-cal.c (backend_died_cb): cleaned up the status bar + messages for all widgets. + +2002-10-24 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (init): initialize new values + (clean_up): free new values + (find_my_address): if we have a delegator address, use it instead + (write_html): display delegator info to user + (show_current_event): if we have a calendar uri, use that and + describe the event differently + (show_current_todo): ditto + (show_current): search for delegator X properties + (e_itip_control_set_delegator_address): accessor + (e_itip_control_get_delegator_address): ditto + (e_itip_control_set_delegator_name): ditto + (e_itip_control_get_delegator_name): ditto + (e_itip_control_set_calendar_uri): ditto + (e_itip_control_get_calendar_uri): ditto + + * gui/e-itip-control.h: add protos + + * gui/itip-utils.c (comp_from): use the first attendee as the from + address for things other than request, cancel and add (use + organizer) and publish (use default address) + +2002-10-23 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #32613 + + * gui/component-factory.c (sc_user_create_new_item_cb): use the + default calendar/tasks folder to activate the component editor. + (get_data_uri): deal correctly with the URIs being used. + +2002-10-23 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (show_current): fix warning + +2002-10-22 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #32371 + + * pcs/query.c (start_cached_query_cb): CORBA_exception_init the + CORBA_Environment before using it. + +2002-10-22 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-factory.c (lookup_backend): use NULL for pointer instead of + FALSE. + +2002-10-22 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (get_address): use e_config_listener_* to get + values + (itip_addresses_get): ditto + (itip_addresses_get_default): ditto + + * gui/calendar-model.c (calendar_model_value_to_string): don't + send back a null string (affects if it is the group header) + (calendar_model_init): pre load config database info so we don't + do corba calls during draws + + Fixes #32276 + +2002-10-17 JP Rosevear <jpr@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_construct): fix c/p type + +2002-10-17 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/recurrence-page.c (fill_ending_date): if the value + is a datetime, convert it to a date + + * gui/itip-utils.c (comp_compliant): convert an UNTIL date value + to a datetime value + + * cal-util/cal-component.c (cal_component_has_simple_recurrence): + check to see if the component recurrences meet our definition of + "simple" + + * cal-util/cal-component.h: new proto + +2002-10-17 Rodrigo Moya <rodrigo@ximian.com> + + * gui/dialogs/recurrence-page.c (fill_component): changed to have a + gboolean return type, which is what it's supposed to do. + (recurrence_page_fill_component): return the result from + fill_component. + + * gui/dialogs/comp-editor-page.h: fixed typo in function prototype. + +2002-10-11 JP Rosevear <jpr@ximian.com> + + * gui/gnome-cal.c + (gnome_calendar_on_date_navigator_selection_changed): try to + preserve the work week view setting if it makes sense + (set_view): don't update the info again based on our view change + call + + Fixes #16036 + +2002-10-08 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #11434 + + * gui/dialogs/comp-editor-page.[ch] + (comp_editor_page_display_validation_error): new function. + + * gui/dialogs/event-page.c (event_page_fill_component): + * gui/dialogs/recurrence-page.c (fill_component): + * gui/dialogs/task-details-page.c (task_details_page_fill_component): + * gui/dialogs/task-page.c (task_page_fill_component): added + checks for all date values, and return FALSE if we find + some invalid date/times. + + * gui/dialogs/comp-editor.c (save_comp): activate the page that + returns error in fill_component. + +2002-10-08 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/cal-prefs-dialog.c + (cal_prefs_dialog_create_time_edit): set the 24 hour format + initially + + Fixes #31812 + +2002-10-08 JP Rosevear <jpr@ximian.com> + + * gui/e-week-view.c: remove pilot settings from contextual menu + + * gui/e-day-view.c: ditto + +2002-10-07 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #31774 + + * gui/dialogs/alarm-options.c (dalarm_widgets_to_alarm, + palarm_widgets_to_alarm): use correct pointer in loop. + +2002-10-07 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/cal-prefs-dialog.c (setup_changes): cast the correct + item + +2002-10-07 Rodrigo Moya <rodrigo@ximian.com> + + Fixes crash in #19159 + + * gui/alarm-notify/alarm-queue.c (lookup_queued_alarm): don't crash if + we don't find the queued alarm in the internal list. + (alarm_trigger_cb, create_snooze, display_notification, + audio_notification, procedure_notification, remove_queued_alarm): + check return value from lookup_queued_alarm. + +2002-10-04 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #15892 + + * idl/evolution-calendar.idl: added notifyErrorOccurred method to + the Listener interface, so that backends can notify clients of errors + that can't be reported otherwise. + + * pcs/cal.[ch] (cal_notify_error): new function. + + * pcs/cal-backend-file.c (save): made to save to temporary file and + then moved to the correct file, so that we don't lose any data if + there's a problem while saving. + (notify_error): new function for notifying error messages to clients. + + * cal-client/cal-listener.[ch]: added new callback function for getting + error messages from backends. + (impl_notifyErrorOccurred): new method implementation. + (cal_listener_class_init): initialize new epv member. + (cal_listener_init, cal_listener_destroy, cal_listener_construct, + cal_listener_new): initialize new function pointer. + + * cal-client/cal-client.[ch]: adapted to changes in CalListener class. + (cal_client_class_init): added "backend_error" signal to CalClient class. + (backend_error_cb): callback for "error_occurred" signal on the CalListener, + which just emits the "backend_error" signal of CalClient. + + * gui/gnome-cal.c (gnome_calendar_construct): connect to "backend_error" + signal on the CalClient's we create. + (backend_error_cb): display error message on error from backend. + + * gui/e-tasks.c: likewise. + +2002-10-02 Rodrigo Moya <rodrigo@ximian.com> + + * gui/alarm-notify/notify-main.c (alarm_notify_factory_fn): removed + unneeded g_assert which was preventing the alarm daemon to + start correctly in some cases. + +2002-10-02 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #30057 + + * cal-client/cal-client.c (cal_client_is_read_only): added check + of the status of the client before trying to make CORBA calls. + + * gui/calendar-commands.c (sensitize_calendar_commands, + sensitize_taskpad_commands): + * gui/tasks-control.c (sensitize_commands): + * gui/dialogs/event-editor.c (set_menu_sens): + * gui/dialogs/task-editor.c (set_menu_sens): + * gui/e-calendar-table.c (e_calendar_table_on_right_click): + * gui/e-day-view.c (e_day_view_on_event_right_click): + * gui/e-week-view.c (e_week_view_show_popup_menu): take into account + the read-onlyness of clients to disable/enable menu items. + +2002-10-01 Rodrigo Moya <rodrigo@ximian.com> + + * idl/evolution-calendar.idl: added isReadOnly method to Cal + interface. + + * pcs/cal.c (impl_Cal_is_read_only): new method implementation. + + * pcs/cal-backend.[ch]: added is_read_only method to CalBackend class. + (cal_backend_is_read_only): new function. + + * pcs/cal-backend-file.c (cal_backend_file_is_read_only): new method. + (cal_backend_file_class_init): set new signal's virtual method. + + * cal-client/cal-client.[ch] (cal_client_is_read_only): new function. + +2002-10-01 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #15710 + + * gui/dialogs/alarm-page.c (alarm_page_init): added a + X-EVOLUTION-NEEDS-DESCRIPTION property, so that we later set it + correctly if it hasn't been set in the meanwhile (editing options for + the alarm). + + * gui/dialogs/alarm-options.c (dalarm_widgets_to_alarm, + palarm_widgets_to_alarm): removed X-EVOLUTION-NEEDS-DESCRIPTION + property from alarms every time we set the description of the alarm. + +2002-10-01 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #30290 + + * importers/icalendar-importer.c (process_item_fn): return a status of + BUSY rather than NOT_READY, to avoid the display of the error message. + +2002-09-30 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c + (calconduit_load_configuration): load multi_day_split + (calconduit_save_configuration): save it + (calconduit_dupe_configuration): copy it + (e_cal_gui_new): create gui for it + (e_cal_gui_fill_widgets): fill gui with value + (e_cal_gui_fill_config): get value from gui and store in config + (e_calendar_context_destroy): destroy new_cfg and gui properly + (process_multi_day): skip item if its multi-day and we don't want + to split + (fill_widgets): fill local config widgets + (create_settings_window): create local config widgets + (save_settings): fill config from local widgets + + Fixes #23763 + +2002-09-30 Aaron Weber <aaron@ximian.com> + + * gui/e-itip-control.c (update_item): adjust string on line 1609 + and 1517. + + * gui/dialogs/alarm-options.glade: rephrase string on line 270 + +2002-09-27 Dan Winship <danw@ximian.com> + + * gui/calendar-commands.c (pixmaps): Remove "/Toolbar/New" and + "/Toolbar/NewTask" since they're not there any more. Kills some + bonobo-ui spewage. + +2002-09-26 Dan Winship <danw@ximian.com> + + Non-Connector part of #29334 (meeting created by a delegate in the + delegator's calendar should have the delegator as Organizer). + + * idl/evolution-calendar.idl: add Cal_getEmailAddress, to return + the email address associated with a backend (if any). + + * pcs/cal-backend.c (cal_backend_get_email_address): New. + + * pcs/cal-backend-file.c (cal_backend_file_get_email_address): + Return NULL (for now). + + * pcs/cal.c (impl_Cal_get_email_address): Implement this by + calling cal_backend_get_email_address and returning a NotFound + exception if it returns NULL. + + * cal-client/cal-client.c (cal_client_get_email_address): New. + (cal_client_init, cal_client_destroy, etc): initialize/free + email_address + + * gui/dialogs/event-editor.c (event_editor_construct): Split this + out of event_editor_init. Take and set a CalClient. + (event_editor_new): Take a CalClient. + + * gui/dialogs/task-editor.c (task_editor_construct, + task_editor_new): Likewise. + + * gui/dialogs/meeting-page.c (meeting_page_new, + meeting_page_construct): Take a CalClient and call + cal_client_get_email_address to find the default organizer + address. (Also fix a bug if the default account's name has + non-ASCII characters.) + + * gui/itip-utils.c (comp_from): New. When sending a REQUEST or + CANCEL, use the Organizer as the From address. + (itip_send_comp): Call comp_from and pass the result to + Composer_setHeaders. + + * gui/comp-editor-factory.c (edit_existing, edit_new): Pass the + CalClient to event_editor_new/task_editor_new + + * gui/e-calendar-table.c (open_task): Likewise. + + * gui/e-tasks.c (e_tasks_new_task): Likewise. + + * gui/gnome-cal.c (gnome_calendar_edit_object, + gnome_calendar_new_task): Likewise. + +2002-09-26 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-model.c (set_value_at): only change the attendee + value if it isn't empty + +2002-09-26 Rodrigo Moya <rodrigo@ximian.com> + + Should fix once for all #24210 + + * idl/evolution-calendar.idl: changed the notifyObjUpdated method + of the QueryListener interface accept a list of UIDs. + + * cal-client/query-listener.[ch] (impl_notifyObjUpdated): likewise for + the QueryListener class. + + * cal-client/cal-query.c (obj_updated_cb): changed to adapt the + multiple-id's received in the QueryListener class' signal to the + one-by-one update notification of the public CalQuery class, thus + keeping the changes needed for this minimal. + + * pcs/query.c (add_component, start_cached_query_cb): changed to + send sequences of UIDs. + +2002-09-25 Dan Winship <danw@ximian.com> + + * gui/component-factory.c (folder_types): Add "calendar/public" + and "tasks/public". + (type_is_calendar, type_is_tasks): New utility functions + (create_view, create_folder, remove_folder, xfer_folder, + sc_user_create_new_item_cb): Use type_is_calendar/type_is_tasks + + * importers/icalendar-importer.c (get_uri_from_folder_path): allow + importing into public calendar/task folders too. + + * gui/e-itip-control.c: Note that it's intentional that we use + "calendar" and "tasks" here instead of "calendar/*" and "tasks/*". + (31032) + +2002-09-25 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (itip_send_comp): if the item being sent is not + a meeting, send it as a mixed item with a description and the + calendar text in an attachment + + Fixes #30638 + +2002-09-25 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #27961 + + * pcs/cal-backend-file.c (cal_backend_file_update_object): set the + LAST-MODIFIED time of the components when we save them. + +2002-09-24 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-backend-file.c (cal_backend_file_get_timezone_object, + cal_backend_file_get_timezone): return a builtin timezone if we + don't find the timezone in our component. + +2002-09-24 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (comp_from_remote_record): + make sure the start/end for no time palm events are DATE values, + tidy code slightly + + Fixes #21631 + +2002-09-24 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (process_multi_day): + convert to date values if the original start and end were both + dates + +2002-09-24 Rodrigo Moya <rodrigo@ximian.com> + + * cal-client/cal-query.c (cal_query_destroy): unref the query + since now the query object on the server keeps a copy of it and + must know when the listener is no longer valid. + + * pcs/query.c (listener_died_cb): unref the QueryListener object. + (query_construct): create an EComponentListener for the non-cached + queries' listeners also. + +2002-09-23 JP Rosevear <jpr@ximian.com> + + * conduits/todo/Makefile.am: add libeutil to the link + + * conduits/calendar/Makefile.am: ditto + +2002-09-23 Dan Winship <danw@ximian.com> + + * pcs/cal.c (imple_Cal_update_objects, impl_Cal_remove_object): + fix non-ANSI switch statements. + + * gui/e-meeting-model.c (is_cell_editable, value_is_empty, + process_free_busy_comp): Likewise + + * gui/itip-utils.c (comp_compliant): Likewise. + +2002-09-23 Rodrigo Moya <rodrigo@ximian.com> + + * gui/main.c (launch_alarm_daemon): install an idle callback that will + start the alarm daemon. + (launch_alarm_daemon_cb): actually activate the alarm daemon here. + + * pcs/query.c (start_cached_query_cb): remove timeout function always + and re-add it if the query is in progress. + +2002-09-23 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/query.c (start_cached_query_cb): move success notification code + to its own code block, since it was being run for parse errors also. + Also, remove all traces of the query from the cache if there is an + error. Also, use GINT_TO_POINTER instead of GPOINTER_TO_INT. + +2002-09-23 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #28310 + + * gui/alarm-notify/save.c (save_notification_time): only save the + new notification time if it is bigger than the already saved one. + This should avoid some reminders showing up twice. + +2002-09-20 JP Rosevear <jpr@ximian.com> + + * gui/comp-util.c (cal_comp_is_on_server): check to see if the + component is already on the server or not + + * gui/comp-util.h: change proto + + * gui/e-week-view.c (e_week_view_on_editing_stopped): only delete + the event if the summary is empty and the component is not already + on the server + + * gui/e-day-view.c (e_day_view_on_editing_stopped): same + + Fixes #14111 + +2002-09-20 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/meeting-page.c (meeting_page_fill_widgets): set the + deleted attendees array to size 0 after we clean it up + + Fixes #30479 + +2002-09-20 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/query.c (parse_sexp): remove the query from the cache if it + failed. + (start_cached_query_cb): notify of errors in the query. + +2002-09-19 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/query.c: added a list of EComponentListener's to control the + lifetime of the listeners. + (query_init): initialize new member. + (query_destroy): free new member. + (start_cached_query_cb): create a EComponentListener for the new + listener being added. + +2002-09-19 Rodrigo Moya <rodrigo@ximian.com> + + More fixes for #24210 + + * pcs/query.c: added list of cached queries and changed the Query + class to work with several listeners, not only one. + (query_init): initialize new members. + (query_destroy): free new members. + (add_component, remove_component, parse_sexp, match_component, + process_components_cb): notify all listeners. + (notify_uid_cb, start_cached_query_cb): implemented integration of + cached queries. + (query_new): search the query in the cache before creating a new + one. And if we create a new one, store it in the cache. + +2002-09-19 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/recurrence-page.c (simple_recur_to_comp): bump the + month_num by 1 because it indexs at 0 + (recurrence_page_fill_widgets): lower the month_num by one as above + + Fixes #30381 + +2002-09-17 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #26362 + + * gui/e-itip-control.c (show current): add a default reminder if + default reminders are set in the configuration. + +2002-09-11 JP Rosevear <jpr@ximian.com> + + * gui/e-day-view.c (e_day_view_on_top_canvas_button_press): keep + the selection if we right click in it (but not on an appointment) + (e_day_view_on_main_canvas_button_press): ditto + + * gui/e-week-view.c (e_week_view_on_button_press): same + +2002-09-11 JP Rosevear <jpr@ximian.com> + + * gui/e-week-view.c (e_week_view_new_appointment): create a new + appointment based on the selection + (e_week_view_on_button_press): use above + (e_week_view_on_new_appointment): ditto + (e_week_view_on_new_meeting): ditto + + Fixes #18162 + +2002-09-10 JP Rosevear <jpr@ximian.com> + + * gui/comp-editor-factory.c (get_default_event): duh, don't + blindly increment the hour without adjusting for the day + boundaries + + Fixes #29983 + +2002-09-10 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #24032 + + * gui/e-itip-control.c (init): don't get servers here, since we don't + know the type of the component(s) to be loaded. + (show_current): get servers here. + (destroy): only free stuff that needs to be freed. + +2002-09-09 Rodrigo Moya <rodrigo@ximian.com> + + * gui/gnome-cal.c (client_cal_opened_cb): display status messages for + all operations we make, so that when using remote slow backends, so + that users have always indication of what's happening. + +2002-09-06 JP Rosevear <jpr@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_edit_object): kill warning + + * gui/e-week-view.h: new proto + + * gui/e-week-view.c (e_week_view_set_selected_time_range_visible): + select a range of time in the currently visible area, if out side + the visible area, select as much as possible + (e_week_view_on_text_item_event): call above + + * gui/e-week-view-event-item.c + (e_week_view_event_item_button_press): call above + + * gui/e-day-view.c + (e_day_view_set_selected_time_range_in_top_visible): select a + range of time in the currently visible area, if out side the + visible area, select as much as possible + (e_day_view_set_selected_time_range_visible): the same for the + main canvas + (e_day_view_on_long_event_button_press): call above + (e_day_view_on_event_button_press): ditto + +2002-09-05 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (itip_send_comp): don't try to send via the + server if we are publishing; don't bail out on a 0 length to list + if we are publishing + +2002-09-05 Anna Marie Dirks <anna@ximian.com> + + * gui/GNOME_Evolution_Calendar.oaf.in: Changed the description of + the calendar/tasks page of the settings dialog, to be hopefully + more descriptive and less awkwardly worded. + + +2002-09-05 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-day-view.c (e_day_view_on_drag_data_get): added support for + text/x-calendar targets, in which case a VCALENDAR component, with + full timezone information is returned. + +2002-09-04 JP Rosevear <jpr@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_destroy): don't listen to client + signals after we get destroyed + + Fixes #17036 + +2002-09-04 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/event-editor.c (event_editor_send_comp): bail out if + we couldn't send the cancel + + * gui/dialogs/task-editor.c (task_editor_send_comp): ditto + + * gui/dialogs/comp-editor.c (save_comp_with_send): indicate send + status + (real_send_comp): return success/fail, only resave the component a + if we successfully sent + (comp_editor_send_comp): return success/fail + + * gui/itip-utils.h: update proto + + * gui/itip-utils.c (itip_send_comp): return true if we sent the + message + +2002-09-04 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (comp_server_send): provide error message + param, give a dialog with the message if we get a busy result; + return TRUE if we succeed + (itip_send_comp): bail out if we had a problem sending via the + server + + * cal-client/cal-client.c (cal_client_send_object): pass back + error message if we get the busy exception in the new param + + * cal-client/cal-client.h: update proto + + * pcs/cal.c (impl_Cal_send_object): dump backend error message + into Busy exception + + * pcs/cal-backend.h: update proto + + * pcs/cal-backend.c (cal_backend_send_object): take/pass new error + message parameter + + * pcs/cal-backend-file.c (cal_backend_file_send_object): take new param + + * idl/evolution-calendar.idl: add errorMsg to Busy exception + +2002-09-04 Ettore Perazzoli <ettore@ximian.com> + + * gui/component-factory.c (create_object): Pass NULL as + @unpopulate_folder_context_menu_fn to + evolution_shell_component_new(). + +2002-09-03 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (comp_compliant): don't make the reply + component minimal + + Fixes #28956 + +2002-08-30 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (itip_send_comp): make the sure to list is 0 + length before sending via imip + + Fixes #29624 + +2002-08-30 Mike Kestner <mkestner@ximian.com> + + * gui/dialogs/event-page.c: + * gui/dialogs/task-page.c: use bonobo_object_release_unref to release + the remote SelectNames component, not CORBA_Object_release. + +2002-08-29 JP Rosevear <jpr@ximian.com> + + * gui/e-day-view.c (e_day_view_on_top_canvas_button_press): select + the top canvas if the user right-clicks on it + (e_day_view_on_main_canvas_button_press): select the row the user + is right-clicking on + (e_day_view_on_long_event_button_press): select the top canvas if + the user right-clicks on an event there + (e_day_view_on_event_button_press): select the relevant rows if + the user right-clicks on an event + (e_day_view_set_selected_time_range_in_top): select a number of + days in the top canvas + + * gui/e-week-view.c (e_week_view_on_button_press): select the day + the user is right-clicking on + (e_week_view_on_text_item_event): select the corresponding time + range when showing the contextual menu for an event + + * gui/e-week-view-event-item.c + (e_week_view_event_item_button_press): select the corresponding + time range when showing the contextual menu for an event + + Fixes #14660 + +2002-08-28 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-day-view.c: + * gui/e-week-view.c: added missing header file. + +2002-08-28 Dan Winship <danw@ximian.com> + + * gui/GNOME_Evolution_Calendar.oaf.in: Add an + evolution:shell_component_launch_order and rename + evolution:shell_component_icon. + +2002-08-27 Rodrigo Moya <rodrigo@ximian.com> + + * gui/calendar-config.c: use EConfigListener instead of direct access + to the bonobo-conf database. + (calendar_config_init): create the EConfigListener here, and install + an atexit function to unref the config listener object. + (config_read, property_change_cb, calendar_config_write, + calendar_config_write_on_exit): removed unneeded functions. + (calendar_config_get_*, calendar_config_set_*): changed to make use of + EConfigListener directly. + + * gui/main.c (main): removed call to calendar_config_write_on_exit. + + * gui/dialogs/cal-prefs-dialog.c (update_config): removed call to + calendar_config_write. + +2002-08-26 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #12326 + + * gui/alarm-notify/config-data.c (ensure_inited): create a + EConfigListener for configuration access. + (do_cleanup): g_atexit installed function, to clean up configuration + database resources. + (config_data_get_timezone): retrieve the configuration for the + EConfigListener object. + (config_data_get_listener): new function. + + * gui/alarm-notify/save.c (get_config_db, discard_config_db): removed. + Use EConfigListener instead. + (save_notification_time, get_saved_notification_time, + save_calendars_to_load, get_calendars_to_load, save_blessed_program, + is_blessed_program): use EConfigListener. + + * gui/alarm-notify/notify-main.c (init_alarm_notify_service): removed. + (alarm_notify_factory_fn): create here the alarm_notify_service if it + hasn't been created yet. + (load_calendars): likewise. + (main): don't call init_alarm_notify_service. + +2002-08-22 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-model.c (process_section): if its a + non-participant, add it as a resource to match dialog label + (set_value_at): if the type is set to be a resource, switch the + role to non-participant by default + +2002-08-22 JP Rosevear <jpr@ximian.com> + + * gui/calendar-model.c (set_completed): if the value given is a + date, convert to a time in the current zone + +2002-08-20 JP Rosevear <jpr@ximian.com> + + * gui/tasks-control.c (tasks_control_activate): don't set the + tasks ui component until the container is set, remove unused + pixmaps + +2002-08-19 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-model.c (destroy): disconnect destroy signal + callbacks on tables + + Fixes #28231 + +2002-08-19 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (comp_toplevel_with_zones): clone the ical + component before adding it + + Fixes #29061 + +2002-08-19 JP Rosevear <jpr@ximian.com> + + * gui/comp-editor-factory.c (get_default_event): make sure to get + the date in the current zone, not at UTC + + Fixes #17692 + +2002-08-19 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (set_date_label): stop adding redundant + information for start/end/due/complete times + (write_html): convert newlines properly and escape characters for + summary, location, description; put text information on separate + line from bolded title to make it look nicer when there are line + breaks + + Fixes #26964 + +2002-08-16 Rodrigo Moya <rodrigo@ximian.com> + + * cal-client/cal-client.[ch]: added internal EComponentListener + object, to listen for the activated Cal. + (cal_client_class_init): added "backend_died" signal. + (cal_client_destroy): clean up component listener. + (backend_died_cb): new callback for getting signals from the + EComponentListener. + (cal_opened_cb): setup component listener. + + * cal-client/Makefile.am: added libetuil to needed LIBS. + + * gui/gnome-cal.c (backend_died_cb): new callback. + (gnome_calendar_construct): connect to "backend_died" signal + on all CalClient's we create. + +2002-08-14 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/cal-prefs-dialog.c (init_widgets): listen for the + time editors to change + (cal_prefs_dialog_start_of_day_changed): make sure the start is + never after the end + (cal_prefs_dialog_end_of_day_changed): make sure the end is never + after the start + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_set_working_hours): make sure to show a + minimum of 1 hour for work day + + * gui/e-day-view-main-item.c (e_day_view_main_item_draw): + calculate the work/not working color boxes to the nearest pixel, + rather the the nearest time division + + Fixes #10286, #26285 + +2002-08-13 Dan Winship <danw@ximian.com> + + * gui/e-itip-control.c: Remove a bunch of old #if 0 code. + (update_item): Set X-MICROSOFT-CDO-REPLYTIME here. + + * gui/itip-utils.c (comp_toplevel_with_zones): Don't set it here. + + * cal-util/cal-component.c (ensure_mandatory_properties): Use + icaltime_current_time_with_zone rather than rolling our own. + (cal_component_strip_errors): Remove unused variable. + +2002-08-13 Rodrigo Moya <rodrigo@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_open): set status message on + ECalendarTable when opening the tasks. + (client_cal_opened_cb): set ECalendarTable status message to NULL + when we open the tasks folder. Also, clear up calendar status message + in all cases, not only if the folder was opened successfully. + +2002-08-13 Rodrigo Moya <rodrigo@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_open): set status message to NULL + if there is an error opening the calendar. + (client_cal_opened_cb): set status message to NULL only when we have + successfully opened the main CalClient. + +2002-08-09 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/comp-editor.c (real_send_comp): set the editor to + changed so the item actually gets saved + +2002-08-08 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (users_has_attendee): check for an attendee in + the list + (comp_to_list): only add the user if they aren't on the list + (comp_server_send): don't remove the users, pass back the list + (itip_send_comp): send to server before doing comp_minimal + + * gui/dialogs/comp-editor.c (real_send_comp): edit and save the + updated comp + + * pcs/cal.c (impl_Cal_send_object): copy the correct item to pass + back + +2002-08-08 Dan Winship <danw@ximian.com> + + * pcs/query-backend.c (query_backend_new): Initialize + loaded_backends before using it. (Just kills off a harmless + g_warning.) + +2002-08-08 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #15710 + + * cal-util/cal-component.[ch] + (cal_component_alarm_get_icalcomponent): new function for getting + the icalcomponent from a CalComponentAlarm. + + * gui/comp-util.c (cal_comp_event_new_with_defaults): added + X-EVOLUTION-NEEDS-DESCRIPTION property to the default reminder + alarm, so that we can identify it when saving the component. + + * gui/dialogs/alarm-page.c (alarm_page_fill_component): if the + alarm has the X-EVOLUTION-NEEDS-DESCRIPTION property, set the + description to be the same as of the component. + +2002-08-07 JP Rosevear <jpr@ximian.com> + + * pcs/cal-backend-file.c (cal_backend_file_send_object): just + return the object untouched since we don't send anything + + * pcs/cal-backend.c (cal_backend_remove_object): call virtual method + + * pcs/cal-backend.h: add send result codes, new proto + + * pcs/cal.c (impl_Cal_send_object): implement sendObject corba call + (cal_class_init): add to epv + + * gui/itip-utils.c (comp_toplevel_with_zones): utility function to + create icalcomponent with necessary timezone info + (comp_has_attendee): see if attendee is in the attendee list + (comp_server_send): use above and remove attendees if the server + sends them + + * gui/e-itip-control.c (show_current_todo): remove unused var + + * idl/evolution-calendar.idl: add Busy exception and + + * cal-client/cal-client.c (cal_client_send_object): send object + via the server (if the server can) + + * cal-client/cal-client.h: add send results and new proto + +2002-08-05 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/query-backend.[ch] (query_backend_get_object_component): new + function. + (query_backend_get_uids): new function. + (query_backend_new): create the static GHashTable if it hasn't been + created yet. + (query_backend_destroy): destroy the static GHashTable if empty. + (foreach_uid_cb): call object_updated_cb, which does everything. + + * pcs/query.c: make use of the new QueryBackend class. + (query_init): initialize new private structure member. + (query_destroy): clean up new member, without freeing it, since it is + managed internally in query-backend.c. + (query_construct): create a QueryBackend for the query. + +2002-08-04 Rodrigo Moya <rodrigo@ximian.com> + + Fixes the crash in #19159 + + * gui/alarm-notify/alarm-queue.c (create_snooze): check for NULL + pointers before using them. + +2002-08-02 JP Rosevear <jpr@ximian.com> + + * gui/e-week-view.c (e_week_view_init): don't warn if we can't use + the small font, just set use_small_font to FALSE + +2002-08-02 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (adjust_item): new util function to add + information to an itip message that might not already be there for + display purposes (summary, location, etc) + (show_current_event): use above + (show_current_todo): ditto + +2002-08-02 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-model.c (init): initialize value to corba nil + +2002-08-01 Ettore Perazzoli <ettore@ximian.com> + + * gui/component-factory.c (create_object): Use + meeting-request-16.png instead of meeting-request.png. + + * gui/calendar-commands.c (pixmaps): Remove pixmaps in + /menu/File/New/NewFirstItem/. + +2002-08-01 JP Rosevear <jpr@ximian.com> + + * gui/calendar-model.c (is_overdue): use get_due_status + (get_color): ditto + (get_due_status): utility function to reduce replicated code, + handle the case where the due date is just a date + +2002-07-31 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/query-backend.[ch]: new class for implementing a backend cache + for the calendar queries. + + * pcs/Makefile.am: added new files. + +2002-07-31 Ettore Perazzoli <ettore@ximian.com> + + * gui/component-factory.c (create_object): Change the order of the + user creatable items a bit so that "New Appointment" and "New + Meeting" are at the top when in a calendar folder. + +2002-07-31 Ettore Perazzoli <ettore@ximian.com> + + * gui/component-factory.c (add_creatable_item): New arg + @folder_type, pass it to + evolution_shell_component_add_user_creatable_item(). + (create_object): Set the right folder types for the various + user-creatable items. + +2002-07-31 JP Rosevear <jpr@ximian.com> + + * gui/e-tasks.c (e_tasks_destroy): we no longer need to manually + save the state + (e_tasks_open): we no longer need to manually load the state + (display_view_cb): attach the gal view to the table + + Fixes #27894 + +2002-07-29 JP Rosevear <jpr@ximian.com> + + * gui/e-day-view.c (e_day_view_find_work_week_start): make sure + that the work week view goes to the current work week if the day + selected is before the start of the work week + + Fixes #20317 + +2002-07-28 Rodrigo Moya <rodrigo@ximian.com> + + * gui/dialogs/task-details-page.c: fixed mapping of popdown menu + to ICAL_STATUS_ values. + (task_details_page_fill_widgets): when we can't set the status, + default to ICAL_STATUS_NONE, which maps to 'Not started'. Fixed + use of 'percent' variable, which was being used after being freed. + (percent_complete_changed): default to ICAL_STATUS_NONE (Not Started). + + * gui/dialogs/task-details-page.glade: added 'Needs Action' to + popdown menu values. + +2002-07-26 Rodrigo Moya <rodrigo@ximian.com> + + * cal-util/cal-util.[ch] (cal_util_add_timezones_from_component): + new function for adding VTIMEZONE components to a VCALENDAR + component. + + * gui/e-calendar-table.c (copy_row_cb): added VTIMEZONE components + to resulting VCALENDAR top-level component. + + * gui/e-week-view.c (e_week_view_copy_clipboard): copy to the + clipboard a top-level VCALENDAR component, with all the needed + VTIMEZONE components. + (e_week_view_on_copy): likewise. + + * gui/e-day-view.c (e_day_view_copy_clipboard): likewise. + (e_day_view_on_copy): likewise. + +2002-07-26 JP Rosevear <jpr@ximian.com> + + * cal-client/cal-client.c (cal_client_construct): remove useless + debug statement + + Probably fixes #19333 + +2002-07-26 JP Rosevear <jpr@ximian.com> + + * gui/comp-editor-factory.c (impl_editExisting): focus the editor + if it does exist, create a new one if it doesn't (not vice-versa) + + Fixes #23468 + +2002-07-25 JP Rosevear <jpr@ximian.com> + + * gui/e-day-view.c (e_day_view_init): set large_font to NULL + (e_day_view_style_set): calculate large font, fall back to the + style->font if necessary + + Fixes #11773 + +2002-07-24 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (write_html): display the location in the + itip information + + Fixes #24690 + +2002-07-24 JP Rosevear <jpr@ximian.com> + + * gui/calendar-model.c (set_percent): set status to in progress if + the percent is between 0 and 100 + (set_status): if the value is set to in process, change the + percent to 50 + + Fixes #1590 + +2002-07-24 JP Rosevear <jpr@ximian.com> + + * cal-util/timeutil.c (time_day_of_year): add a day for the leap + year only if we are currently counting Feb., not if the month + passed in is Feb. Fixes #23446. + +2002-07-23 JP Rosevear <jpr@ximian.com> + + * gui/e-day-view.c (e_day_view_realize): use proper meeting icon + +2002-07-22 Dan Winship <danw@ximian.com> + + * pcs/Makefile.am: Split pcs-backend-file out of libpcs and build + it as a separate (noinst) library libpcsfile.a. This gets the db3 + dependencies out of libpcs, and people trying to create a calendar + backend shouldn't be calling functions from the existing backends + anyway so there's no reason to install them. + + * cal-util/timeutil.c: Replace a bunch of old gnomecal functions + with the functionally identical ones from Connector. + +2002-07-18 Rodrigo Moya <rodrigo@ximian.com> + + * importers/icalendar-importer.c (get_uri_from_folder_path): if + there's an exception, continue with the next item. + +2002-07-08 Peter Williams <peterw@ximian.com> + + * cal-util/Makefile.am: Install libcal-util-static.la + and fix the -all-static flag to make it install statically. + + * pcs/Makefile.am: Install libpcs.a and its headers. + + * pcs/cal-backend-util.h: Same sort of include namespacing fix, + but for pcs. + + * pcs/cal.h: + * pcs/query.h: + * pcs/cal-factory.h: + * pcs/cal-backend.h: + * pcs/cal-backend-file.h: Same. + +2002-07-17 <jpr@ximian.com> + + * gui/calendar-model.c (calendar_model_value_at): use util + function to see if the user is the organizer + + * gui/dialogs/cancel-comp.c (cancel_component_dialog): add + deleting proto to indicate whether cancelling or deleting is the + primary operation + + * gui/dialogs/cancel-comp.h: update proto + + * gui/dialogs/comp-editor.c (delete_cmd): offer to cancel + + * gui/dialogs/task-editor.c (cancel_task_cmd): call + cancel_component_dialog with new param + + * gui/dialogs/event-editor.c (cancel_meeting_cmd): ditto + + * gui/e-week-view.c (e_week_view_on_editing_stopped): only update + request if user is organizer + (e_week_view_show_popup_menu): disable the meeting and meeting + organizer mask if appropriate + (e_week_view_delete_event_internal): offer to cancel the meeting + (e_week_view_on_cut): ditto + (selection_received): send request if its a meeting + + * gui/e-day-view.h: add meeting icon/mask + + * gui/e-day-view.c (e_day_view_on_event_right_click): disable the + meeting and meeting organizer mask if appropriate + (e_day_view_delete_event_internal): offer to cancel meeting + (e_day_view_on_cut): ditto + (e_day_view_finish_long_event_resize): only update request if user + is organizer + (e_day_view_reshape_long_event): add meeting icon to count + (e_day_view_reshape_day_event): ditto + (e_day_view_on_top_canvas_drag_data_received): only update request + if user is organizer + (e_day_view_on_main_canvas_drag_data_received): ditto + (selection_received): offer to send meeting info + + * gui/e-day-view-main-item.c + (e_day_view_main_item_draw_day_event): draw meeting icon if + appropriate (using dummy icon atm) + +2002-07-14 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #8001 + + * importers/icalendar-importer.c (connect_to_shell): new function for + connecting the importers (both iCal and vCal) to the shell, needed for + some information retrieval about the folders we're importing to. + (ical_importer_new, vcal_importer_new): call connect_to_shell. + (importer_destroy_cb): unref the shell client object. + (get_uri_from_folder_path): retrieve the uri from the storage + registry. + (check_folder_type): removed. + + * importers/Makefile.am: included libeshell to LIBS. + +2002-07-12 Peter Williams <peterw@ximian.com> + + * pcs/cal.c: Sigh, fix for the wombat.idl -> Evolution-Wombat.idl + rename here too. At least grep indicates that's all that needs to + be fixed. + +2002-07-08 Peter Williams <peterw@ximian.com> + + * gui/Makefile.am (INCLUDES): Change the -I flags to get + it to play nicely with the new Ebook header paradigm. + + * gui/dialogs/Makefile.am: Same. + + * gui/e-meeting-model.c: More of the same. + + * gui/dialogs/e-delegate-dialog.c: + * gui/dialogs/e-meeting-model.c: + * gui/dialogs/comp-editor-util.c: Fix include lines to get + ebook headers. + + * pcs/Makefile.am: Same. + +2002-07-02 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #16034 + + * gui/e-day-view.c (e_day_view_reshape_long_event): + (e_day_view_reshape_day_event): + * gui/e-day-view-main-item.c (e_day_view_main_item_draw_day_event): + * gui/e-week-view.c (e_week_view_reshape_event_span): + * gui/e-week-view-event-item.c (e_week_view_event_item_draw_icons): + Don't assume all categories have icons when allocating space for + the icons. + +2002-07-02 Ettore Perazzoli <ettore@ximian.com> + + * gui/component-factory.c (add_creatable_item): New arg @tooltip. + Pass it to evolution_shell_component_add_user_creatable_item(), + which now has a @tooltip arg. + (create_object): Added tooltips. + +2002-07-01 JP Rosevear <jpr@ximian.com> + + * gui/calendar-config.c (config_read): listen for timezone config + change + (property_change_cb): set the timezone if it changed elsewhere + + * gui/main.c (init_bonobo): call bonobo_activate because we make + bonobo related calls before the bonobo_main call + +2002-06-25 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #25410 + + * gui/alarm-notify.c (AlarmNotify_removeCalendar): do proper + cleanup on removal of clients. + (alarm_notify_add_calendar): ditto. + +2002-06-27 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (comp_compliant): plug leak and actually use + the minimal comp we create + +2002-06-25 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/comp-editor-page.h: add back proto + + * gui/dialogs/comp-editor-page.c + (comp_editor_page_notify_needs_send): add page needs_send signal + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_on_invite_others_button_draw): check to + see if the button should be sensitive when drawing + (e_meeting_time_selector_construct): listen for the button draw + signal + + * cal-util/cal-component.c (cal_component_strip_errors): remove + X-LIC-ERROR x properties + + * cal-util/cal-component.h: new proto + + * gui/dialogs/meeting-page.c (change_clicked_cb): set needs_send + to true + (meeting_page_fill_widgets): set up gui based on if the user or + someone else is the organizer + (meeting_page_construct): read the addresses here for the combo + box + (get_widgets): explicitly set the value in list values + + * gui/dialogs/event-editor.c (set_menu_sens): base this on the + exist org and user org values of the comp editor + (event_editor_edit_comp): set up editable row restrictions on the + meeting model if the user is not an organizer, and don't set needs + send if we aren't the organizer initially + (model_row_changed_cb): set needs_send to true + (row_count_changed_cb): ditto + + * gui/dialogs/meeting-page.glade: update gui + + * gui/dialogs/comp-editor.c (save_comp_with_send): if the user is + not the organizer, REPLY rather than REQUEST + (comp_editor_set_existing_org): accessor + (comp_editor_get_existing_org): ditto + (comp_editor_set_user_org): ditto + (comp_editor_get_user_org): ditto + (real_edit_comp): determine if there is an existing organizer and + if the organizers is a user + (page_changed_cb): warn the user that changes may be discarded + (page_summary_changed_cb): ditto + (page_dates_changed_cb): ditto + + * gui/dialogs/comp-editor.h: new protos + + * gui/itip-utils.c (itip_organizer_is_user): determine if the + organizer of a component is a user + (itip_sentby_is_user): same for sentby field of organizer + (comp_sentby): use above routines instead + (comp_compliant): strip all X-LIC-ERROR fields generated by + libical + + * gui/e-meeting-model.c (is_cell_editable): if there is a list of + editable rows, allow only the status column of those rows to be + edited + (init): init edit_rows + (e_meeting_model_restricted_add): add an editable row to the model + (e_meeting_model_restricted_remove): remove an editable row + (e_meeting_model_restricted_clear): clear all editable rows + (e_meeting_model_etable_click_to_add): set the click to add arg on + all tables + (e_meeting_model_etable_from_model): track the tables + (table_destroy_list_cb): remove the table being destroyed from the + list + (table_destroy_state_cb): remove the table being destroyed from + the list + + * gui/e-meeting-model.h: new protos + + * gui/e-itip-control.c (update_attendee_status): kill warning + +2002-06-18 JP Rosevear <jpr@ximian.com> + + * zones.h: update for new zones + +2002-06-17 Rodrigo Moya <rodrigo@ximian.com> + + Fixes wombat crash (for JP and myself) + + * gui/gnome-cal.c (gnome_calendar_open): don't call add_alarms here, + since the client is not yet attached to the backend, and the alarm + daemon does unref the client before creating a new one. + (client_cal_opened_cb): call add_alarms here. + +2002-06-12 Rodrigo Moya <rodrigo@ximian.com> + + * gui/alarm-notify.c: added timeout_id to LoadedClient structure, to + keep track of the timeout function. + (retry_timeout_cb): don't use RetryData, but the LoadedClient. + (cal_opened_cb): ditto, and assigned lc->timeout_id to the return + value of g_timeout_add(). + (alarm_notify_add_calendar): destroy the timeout callback when + destroying the LoadedClient structure. + +2002-06-12 Jeffrey Stedfast <fejj@ximian.com> + + * pcs/cal-factory.c (open_fn): Free the uri_string once we're done + with it. + +2002-06-12 Kjartan Maraas <kmaraas@gnome.org> + + * gui/dialogs/cal-prefs-dialog.glade: Fix a typo. + +2002-06-10 Rodrigo Moya <rodrigo@ximian.com> + + * gui/alarm-notify/alarm-notify.c (alarm_notify_add_calendar): removed + already loaded client when asked to be opened again, and *really* + re-open it again. + +2002-06-04 Christopher James Lahey <clahey@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_setup_view_menus): + gal_view_menus_set_show_define_views (..., FALSE); + +2002-06-04 Christopher James Lahey <clahey@ximian.com> + + * gui/e-tasks.c (e_tasks_setup_view_menus), gui/gnome-cal.c + (gnome_calendar_setup_view_menus): Set the title of our + GalViewCollection. + +2002-06-03 Anna Marie Dirks <anna@ximian.com> + + * gui/dialogs/cal-prefs-dialog.glade: In an attempt to clean up the + config dialog (and to reduce its overall girth), I have re-laid-out the + calendar preferences dialog. It now conforms to standard Evolution + spacing and padding guidelines, and exhibits proper alignment, etc. + +2002-06-03 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/query.c: keep a reference to the Query object, to avoid + crashes when the queries are destroyed before finishing processing. + Fixes #25056. + +2002-05-26 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/comp-editor.h: update proto + + * gui/dialogs/comp-editor.c (comp_editor_get_comp): new function + to get base comp + + * gui/e-comp-editor-registry.c (e_comp_editor_registry_add): get + the base comp, not the current comp, don't unref it + (foreach_close_cb): block the signal, unblock it if the editor + could not be closed + (e_comp_editor_registry_close_all): fix preconditions + (editor_destroy_cb): get the base comp, not the current comp, + don't unref it + +2002-05-26 JP Rosevear <jpr@ximian.com> + + * gui/e-comp-editor-registry.c (e_comp_editor_registry_close_all): + if there are remaining items, return false + (foreach_close_cb): don't remove the item if it couldn't be closed + + * gui/e-comp-editor-registry.h: update proto + + * gui/component-factory.c (request_quit): return a boolean + indicating if everything was closed + + * gui/dialogs/comp-editor.h: update proto + + * gui/dialogs/comp-editor.c (comp_editor_close): return true if + the editor was closed, false otherwise + +2002-05-26 JP Rosevear <jpr@ximian.com> + + * gui/e-comp-editor-registry.[hc]: a registry of comp editors so + we can close them all centrally + + * gui/gnome-cal.c (gnome_calendar_init): there is no editor hash + now + (gnome_calendar_destroy): ditto + (gnome_calendar_edit_object): look for the event editor in the + registry, if it isn't there, create it and add it to the registry + + * gui/e-calendar-table.c (open_task): look for the task editor in + the registry, if it isn't there, create it and add it to the + registry + + * gui/component-factory.c (request_quit): close all open editors + (create_object): add a request_quit function to the shell + component + + * gui/comp-editor-factory.c (free_client): there is no + uid_comp_hash to free any more + (editor_destroy_cb): we get an OpenClient as callback data now, + reduce the editor count and destroy it if it is 0 + (edit_existing): don't create the Component, add the new editor to + the registry, increase the editor count + (edit_new): ditto + (open_client): set the editor count to 0 + (impl_editExisting): look in the registry for the editor + + * gui/Makefile.am: Build new sources + + * gui/main.c (main): create the registry + + * gui/dialogs/comp-editor.c (comp_editor_close): prompt to save + and then close dialog + + * gui/dialogs/comp-editor.h: new proto + + * gui/GNOME_Evolution_Calendar.oaf.in: remove dead summary stuff + +2002-05-24 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-backend-file.c (save): check the value returned by + gnome_vfs_uri_to_string before using it. + (cal_backend_file_open): ditto. + +2002-05-20 Ettore Perazzoli <ettore@ximian.com> + + * gui/dialogs/event-editor.c (event_editor_init): Pass the + @component_pixmaps in so we give the new "Meeting" button an icon. + + * gui/dialogs/comp-editor.c (comp_editor_merge_ui): New arg + @component_pixmaps to pass in custom pixmaps. + +2002-05-20 Rodrigo Moya <rodrigo@ximian.com> + + * gui/alarm-notify/alarm-notify.c: + * gui/alarm-notify/notify-main.c: ported changes from evolution-1-0 + to make it work with reminders on remote backends. + + * pcs/cal-backend-file.c (cal_backend_file_open): check the string + returned by gnome_vfs_uri_to_string, which can be empty. If so, + return an error. + +2002-05-17 JP Rosevear <jpr@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_setup_view_menus): set the view + to the current view + +2002-05-16 Rodrigo Moya <rodrigo@ximian.com> + + * gui/gnome-cal.c (client_cal_opened_cb): added support for + CAL_CLIENT_OPEN_PERMISSION_DENIED error code. + (permission_error): new function to display 'Permission Denied' + error message when opening the calendar. + + * gui/e-tasks.c: likewise. + + * idl/evolution-calendar.idl: added PERMISSION_DENIED to Listener's + OpenStatus enumeration. + + * cal-client/cal-client.c (cal_opened_cb): added code for retrieving + 'Permission Denied' errors, and convert it to CalClientOpenStatus + values. + + * pcs/cal-factory.c (open_backend): added code for informing of + 'Permission Denied' errors. + +2002-05-16 Rodrigo Moya <rodrigo@ximian.com> + + * idl/evolution-calendar.idl: added PermissionDenied exception and + make it be raised in open, updateObjects and removeObject. + + * pcs/cal-backend.h: added CAL_BACKEND_OPEN_PERMISSION_DENIED to + CalBackendOpenStatus enumeration, added CalBackendResult enumeration. + + * pcs/cal.c: + * pcs/cal-backend.c: + * pcs/cal-backend-file.c: adapted to changes in update_objects and + remove_object methods. + + * cal-client/cal-client.[ch]: added CalClientResult enumeration. + (cal_client_update_object, cal_client_update_objects, + cal_client_remove_object): changed to return a CalClientResult. + + * conduits/calendar/calendar-conduit.c: + * calendar/conduits/todo/todo-conduit.c: + * importers/icalendar-importer.c: + * gui/dialogs/comp-editor.c: + * gui/calendar-model.c: + * gui/e-calendar-table.c: + * gui/e-day-view.c: + * gui/e-itip-control.c: + * gui/e-week-view.c: + * gui/comp-util.c: + * gui/e-tasks.c: + * gui/tasks-migrate.c: adapted to changes in cal_client_update_object(s) + and cal_client_remove_object. + +2002-05-15 Ettore Perazzoli <ettore@ximian.com> + + * gui/component-factory.c (create_object): Pass NULL as + @request_quit_fn. + +2002-05-14 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/schedule-page.c (schedule_page_construct): set the + working hours for the meeting time selector + +2002-05-14 JP Rosevear <jpr@ximian.com> + + * cal-util/cal-component.h: make the range datetime member a + struct not a pointer + + * cal-util/cal-component.c (cal_component_get_recurid): take a + pointer to a range + (cal_component_set_recurid): ditto + + * gui/itip-utils.c (comp_minimal): get/set the recurrence id + properly + +2002-05-09 Ettore Perazzoli <ettore@ximian.com> + + * gui/e-itip-control.c (get_servers): use + GNOME_Evolution_Storage__get_folderList instead of + GNOME_Evolution_Storage_getFolderList since I have now changed + that to be an attribute instead of a method. + +2002-05-07 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (start_calendar_server): start a server a + uri + (start_default_server): start a default server + (get_servers): get all clients for all folders of the given + type(s) + (find_server): locate a server for a particular uid + (init): get_servers, listen for object_requested signal + (destroy): destroy all clients + (write_html): put options is there own cell + (get_publish_options): place selector in if param is true + (get_request_options): ditto + (get_real_item): only try and look up the item if we know its in + the server + (show_current_event): find the server (if any) for the current + comp + (show_current_todo): ditto + (update_attendee_status): if there is no server for the comp, it + doesn't exist + (remove_item): ditto + (button_selected_cb): get a client for the selected folder + (object_requested_cb): draw the folder button in + + * gui/calendar-config.h: new protos + + * gui/calendar-config.c (calendar_config_default_tasks_folder): + get default tasks uri + (calendar_config_default_calendar_folder): get default calendar + uri + + * cal-client/cal-client.c (get_default_uri): use + cal_util_expand_uri + + * cal-util/cal-util.h: new proto + + * cal-util/cal-util.c (cal_util_expand_uri): tack on the file name + if its a file uri + +2002-05-03 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-tasks.c (e_tasks_delete_selected): + (e_tasks_complete_selected): show progress messages + on the status bar. + +2002-05-02 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/query.c: #include <gtk/gtkmain.h> to avoid warnings. + +2002-05-02 JP Rosevear <jpr@ximian.com> + + * gui/e-week-view.c (free_view_popup): only discard the popup if + we created one + +2002-05-02 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/query.c: refactored a bit, to not do things in idle loops. + +2002-05-01 JP Rosevear <jpr@ximian.com> + + * gui/print.c (print_day_details): modify the start and end hours + to accomodate all the events in the day + + * gui/e-day-view.c (free_view_popup): only discard the popup if we + created one + +2002-04-30 JP Rosevear <jpr@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_construct): remove setup_widgets + from here + (gnome_calendar_init): move setup_widgets back here + +2002-04-26 Jeffrey Stedfast <fejj@ximian.com> + + * gui/Makefile.am: Don't link to libibex anymore!! + +2002-04-24 JP Rosevear <jpr@ximian.com> + + * gui/e-day-view.c (e_day_view_on_pilot_settings): launch pilot + settings capplet + + * gui/e-week-view.c (e_week_view_on_pilot_settings): ditto + +2002-04-24 JP Rosevear <jpr@ximian.com> + + * gui/e-week-view.c (free_view_popup): free the view popup + (e_week_view_show_popup_menu): add the view popup to the + "main_item" menu and listen for destruction + + * gui/e-day-view.c (free_view_popup): as above + (e_day_view_on_event_right_click): as above + + * gui/e-week-view.h: add class member + + * gui/e-day-view.h: add a class member + + * gui/gnome-cal.h: new protos + + * gui/gnome-cal.c (set_view): set the instance view id properly + when switching views + (gnome_calendar_setup_view_popup): generate a view popup + (gnome_calendar_discard_view_popup): destroy a view popup + +2002-04-22 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal.c (impl_Cal_get_alarms_in_range): raise an exception if the + backend's method returns NULL, since we can't send a NULL pointer to + ORBit. + +2002-04-19 Anna Marie Dirks <anna@ximian.com> + + * gui/dialogs/cal-prefs-dialog.glade: Collapsed notebook into two pages + and added accelerators for everything, as part of my config dialog + polishing project + +2002-04-18 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/recurrence-page.c (simple_recur_to_comp): properly + handle -ve recurrence values + (month_num_submenu_selection_done_cb): track the current date in + use + (make_recur_month_num_submenu): make a submenu of dates + (make_recur_month_num_menu): make the date/relation option menu + (month_num_menu_selection_done_cb): update the date properly and + keep both option menus consistent + (month_day_menu_selection_done_cb): keep both option menus + consistent + (make_monthly_special): listen for selection done signal + (make_recurrence_special): destroy old month_num_menu + (recurrence_page_fill_widgets): properly handle -ve recurrence + values + +2002-04-18 JP Rosevear <jpr@ximian.com> + + * gui/e-day-view.c (e_day_view_on_settings): show the settings + + * gui/e-week-view.c (e_week_view_on_settings): ditto + + * gui/calendar-commands.c (control_util_show_settings): show the + settings dialog + + * gui/calendar-commands.h: new proto + + * gui/control-factory.c (control_factory_new_control): set the + control as object data on the calendar + +2002-04-17 Christopher James Lahey <clahey@ximian.com> + + * gui/e-calendar-table.c, gui/e-day-view.c, gui/e-week-view.c, + gui/dialogs/meeting-page.c: Updated these to match the new + EPopupMenu. + +2002-04-05 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-backend.[ch] (cal_backend_get_query): new method. + + * pcs/cal-backend-file.c (cal_backend_file_get_query): new method. + + * pcs/cal.c (impl_Cal_get_query): call the CalBackend's implementation + instead of calling query_new directly. + + * pcs/query.[ch]: fixed headers. + +2002-04-10 Dan Winship <danw@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_open): Fix this: Rodrigo's patch + used one of the functions I just removed. :) + +2002-04-10 Rodrigo Moya <rodrigo@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_open): use the default uri for + tasks (as stored in the configuration) when the calendar URI is not + a local one (connector, etc). + +2002-04-10 Dan Winship <danw@ximian.com> + + * cal-client/cal-client.c (get_default_uri): Use new-and-improved + default folder URI config paths. + + * gui/calendar-config.c (calendar_config_{get,set}_default_uri, + calendar_config_{get,set}_default_tasks_uri): Remove these. The + shell owns this information now. (Weren't being used anyway.) + + * gui/component-factory.c (get_data_uri): Fix another place that + hardcoded tacking foo.ics on to the end of URLs. + +2002-04-08 Dan Winship <danw@ximian.com> + + * gui/component-factory.c (create_view): Add view_info arg. If the + view_info is non-empty and this is a calendar folder, set the + "view" property on the control's propertybag. + + * gui/control-factory.c (calendar_properties_init): Set up the + "view" property. + (get_prop, set_prop): handle the "view" property by + getting/setting the GnomeCalendar's view. Unfortunately, this + doesn't actually work. See #23208. + + * gui/calendar-commands.c (calendar_control_activate): Set the UI + component's container before calling + gnome_calendar_set_ui_component so that the search bar + initialization will work. + +2002-04-06 JP Rosevear <jpr@ximian.com> + + * pcs/cal-backend-db.[hc]: Remove dead files. + +2002-04-06 JP Rosevear <jpr@ximian.com> + + * gui/GNOME_Evolution_Calendar.oaf.in: add config_item:type + +2002-04-01 Kjartan Maraas <kmaraas@gnome.org> + + * gui/e-itip-control.c: Fix a string. + +2002-04-01 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-backend-db.c: simple fix for DB3 header inclusion in + Mac OS X, by Max Horn <max@quendi.de> + +2002-03-31 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (clean_up): free the my_address member + (find_my_address): fall back on a CN match if possible + (change_status): handle changing the status of a non-existent + address by adding a new attendee + (update_attendee_status): if the attendee response is not from a + user on the list of attendees, ask the user if they want to add + the attendee any how (as an optional participant) + (ok_clicked_cb): if we are suppose to rsvp and the status was ok, + but the attendee address is not known, find it + +2002-03-29 Ettore Perazzoli <ettore@ximian.com> + + * gui/GNOME_Evolution_Calendar.oaf.in: Set a priority for the + config item. Rename to "Calendar and Tasks". + +2002-03-29 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/Makefile.am: s/libversit.la/libversit.a/ + + * conduits/todo/Makefile.am: ditto + +2002-03-29 JP Rosevear <jpr@ximian.com> + + * gui/e-calendar-table.c: implement new pop up menu items for + "Save as", "Print", "Assign Task", "Forward as iCalendar" + + * gui/e-day-view.c: similarly, also "Publish Free/Busy + Information" and "New Meeting" and "New Task" + + * gui/e-week-view.c: ditto + + * gui/dialogs/task-editor.c (show_assignment): move the assignment + page stuff here + (task_editor_show_assignment): use it + (assign_task_cmd): ditto + + * gui/dialogs/task-editor.h: new proto + + * gui/dialogs/comp-editor.c (save_as_cmd): use new e-util file + selector function + + * meeting-mockup.glade: Remove old file + + * topic.dat + +2002-03-19 Dan Winship <danw@ximian.com> + + * cal-util/Makefile.am: s/libversit.la/libversit.a/ + + * cal-client/Makefile.am: Likewise + + * gui/Makefile.am: Likewise + +2002-03-18 Ettore Perazzoli <ettore@ximian.com> + + * gui/cal-search-bar.c: Removed `search_menu_items'. + (cal_search_bar_menu_activated): Removed. + (cal_search_bar_class_init): Don't install. + (cal_search_bar_construct): No menu items here. + +2002-03-15 Jeffrey Stedfast <fejj@ximian.com> + + * gui/e-day-view.c: Updated to use new EPopupMenu API. + + * gui/e-week-view.c: Updated to use new EPopupMenu API. + + * gui/e-calendar-table.c: Updated to use new EPopupMenu API. + +2002-03-15 Ettore Perazzoli <ettore@ximian.com> + + * gui/tasks-control.c (tasks_control_activate): Call + `e_tasks_set_ui_component()' here to give it the + BonoboUIComponent. + (tasks_control_deactivate): Likewise, call it here to unset the + BonoboUIComponent. + + * gui/e-tasks.c (e_tasks_set_ui_component): New. + + * gui/calendar-commands.c (calendar_control_activate): Call + gnome_calendar_set_ui_component() here. + (calendar_control_deactivate): ...And here, with a NULL + BonoboUIComponent. + + * gui/gnome-cal.c (gnome_calendar_set_ui_component): New. + +2002-03-15 JP Rosevear <jpr@ximian.com> + + * gui/main.c: use bonobo exception macros to tidy + + * gui/itip-control-factory.c: ditto + + * gui/gnome-cal.c: ditto + + * gui/comp-editor-factory.c: ditto + + * gui/calendar-commands.c: ditto + +2002-03-14 JP Rosevear <jpr@ximian.com> + + * idl/evolution-calendar.idl: add all day event editor mode + + * gui/component-factory.c: clean up exception handling + (sc_user_create_new_item_cb): support the all day event id + (create_object): add a user creatable all day appointment item + + * gui/comp-editor-factory.c (get_default_event): get a default + event either all day or starting at the top of the hour + (get_default_task): get a default task + (edit_new): support the all day event mode + + * gui/calendar-commands.c: remove unused functions/verbs + +2002-03-13 Ettore Perazzoli <ettore@ximian.com> + + * gui/GNOME_Evolution_Calendar.oaf.in: Add an + "evolution:config_item:icon_path" attribute so we get an icon for + the calendar preferences. + +2002-03-12 Ettore Perazzoli <ettore@ximian.com> + + * gui/dialogs/cal-prefs-dialog.glade: Add <visible>False</visible> + to cal-prefs-dialog so it doesn't get shown when we load the Glade + file with libglade. + + * gui/component-factory.c (owner_set_cb): Register the + ConfigControl factory. + + * gui/tasks-control.c: Removed verb "TaskSettings". + (tasks_control_settings_cmd): Removed. + + * gui/calendar-commands.c: Removed verb "CalendarSettings". + (settings_cmd): Removed. + + * gui/dialogs/cal-prefs-dialog.c: Renamed `CalPrefsDialogPrivate' + to `DialogData'. Replace `dialog' member with a `page' member. + Remove `toplevel_notebook' member. + (init_widgets): Renamed from `cal_prefs_dialog_init_widgets'. + Just get a DialogData. + (get_widgets): Get a DialogData pointer. + (cal_prefs_dialog_destroy): Removed. + (config_control_destroy_callback): New, signal handler for + ::destroy for ConfigControl. + (cal_prefs_dialog_new): Create a new DialogData, connect all the + signal handlers. + (create_time_edit): Renamed from + `cal_prefs_dialog_create_time_edit'. + (cal_prefs_dialog_show): Removed. + (cal_prefs_dialog_button_clicked): Removed. + (show_task_list_config): Get a DialogData. + (show_config): Renamed from `cal_prefs_dialog_show_config'. + Likewise. + (update_task_list_config): Likewise. + (update_config): Renamed from + `cal_prefs_dialog_update_config'. Likewise. + (color_set_callback): New callback, makes the dialog report + changes when the setting in any of the color widgets is changed. + (widget_changed_callback): New callback, makes the dialog report + changes when any of the widgets changes status. + (connect_changed): New utility function to connect this callback + to all the widgets. + (setup_widgets): Connect all the widgets. + (cal_prefs_dialog_new): Call `setup_widgets'. + + * gui/config-control-factory.c: New. + * gui/config-control-factory.h: New. + + * gui/GNOME_Evolution_Calendar.oaf.in: Add + OAFIID:GNOME_Evolution_Calendar_ConfigControl and + OAFIID:GNOME_Evolution_Calendar_ConfigControlFactory. + +2002-03-06 Rodrigo Moya <rodrigo@ximian.com> + + Should fix #21240 + + * gui/alarm-notify/alarm-notify.c: replaced use of GnomeVFSURI + with EUri, to allow non-registered methods. + +2002-03-05 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-itip-control.c (e_itip_control_set_data): reverted my last + change of adding the METHOD property to the incoming request. + + * gui/itip-utils.c (comp_string): added extra + X-MICROSOFT-CDO-REPLYTIME property for broken Outlook. Should fix + #20783. + +2002-03-04 Dan Winship <danw@ximian.com> + + * gui/itip-utils.c (comp_compliant): Reset the DTSTAMP of the new + component. (RFC2245 says DTSTAMP corresponds to the time the + particular iCalendar representation of the object was created.) + Fixes #21198. + +2002-03-05 JP Rosevear <jpr@ximian.com> + + * gui/print.c: remove unneeded parameter from print_text_size + everywhere + (get_font_for_size): calculate a font size based on the available + height + (print_text): calculate the top of where the font should be drawn + (print_text_size): use get_font_for_size + (print_day_background): use get_font_for_size + +2002-03-05 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-time-sel-item.c + (e_meeting_time_selector_item_draw): pass the real table + to e_meeting_model_etable_view_to_model_row + (e_meeting_time_selector_item_paint_busy_periods): ditto + + * gui/dialogs/meeting-page.c (right_click_cb): ditto + + * gui/e-meeting-model.h: update protos + + * gui/e-meeting-model.c + (e_meeting_model_etable_model_to_view_row): take in to account the + fact the table used the without model + (e_meeting_model_etable_view_to_model_row): ditto + +2002-03-04 Damon Chaplin <damon@ximian.com> + + * gui/tasks-control.c: added support for printing the Tasks table. + I hacked it a bit so the user could choose portrait or landscape mode. + This is bug #9677. ETable printing has a few issues, though, and it + isn't very pretty. + +2002-03-04 Dan Winship <danw@ximian.com> + + * gui/itip-utils.c (comp_subject): Prefix the subject with an + indicator like "Accepted" or "Cancelled" explaining what the + action is, since Outlook doesn't display any of that information + inline like we do. (20780) + +2002-02-28 Rodrigo Moya <rodrigo@ximian.com> + + * calendar/gui/e-itip-control.c (e_itip_control_set_data): added the + METHOD property to the top level component we create. + +2002-02-26 Rodrigo Moya <rodrigo@ximian.com> + + * gui/control-factory.c (set_prop): + * gui/tasks-control.c (tasks_control_set_property): display an error + message if the call to gnome_calendar_open or e_tasks_open does not + return TRUE. Fixes #20346. + +2002-02-25 Dan Winship <danw@ximian.com> + + * gui/itip-utils.c (itip_send_comp): use + GNOME_Evolution_Composer_setBody rather than _setMultipartType and + _attachData now, to send a message containing just a text/calendar + part. Fixes 14705. Mostly. + (comp_content_type): Include the filename here since we can't add + a Content-Disposition now. + +2002-02-24 Chris Toshok <toshok@ximian.com> + + * gui/cal-search-bar.c (cal_search_bar_class_init): change + query_changed to search_activated. + (cal_search_bar_search_activated): rename + cal_search_bar_query_changed to this. + +2002-02-21 Ettore Perazzoli <ettore@ximian.com> + + * gui/component-factory.c (add_creatable_item): New helper + function. + (create_object): Add icons for the various user creatable items. + +2002-02-19 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (send_item): pass extra itip_send_comp + params + (send_freebusy): ditto + (ok_clicked_cb): ditto, including the timezones culled from the + component + + * gui/e-week-view.c: pass extra itip_send_comp params + + * gui/calendar-commands.c: ditto + + * gui/e-day-view.c: ditto + + * gui/dialogs/task-editor.c: ditto + + * gui/dialogs/event-editor.c: ditto + + * gui/dialogs/comp-editor.c: ditto + + * gui/itip-utils.h (itip_send_comp): update proto + + * gui/itip-utils.c (foreach_tzid_callback): check the passed in + zones, then the builtin time zones then the client + +2002-02-19 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (find_my_address): strip the ical value and + do a case insensitive compare + (find_attendee): ditto + (change_status): put the error message here + (ok_clicked_cb): don't update the item or rsvp unless + change_status was successful, trip the ical value and do a case + insensitive compare + + * gui/itip-utils.c (get_address): strip the incoming address + (itip_strip_mailto): use g_strncasecmp + (comp_limit_attendees): strip the ical value and do a case + insensitive compare + +2002-02-14 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-model.c: use new column enums + (set_value_at): emit pre-change/cell change signals + (destroy): destroy refresh_queue and refresh_data + (init): init new elements + (refresh_queue_add): if the attendee is being refreshed already, + possibly update the start/end times to look for and update the + callback info, otherwise add it to the queue + (refresh_queue_remove): remove a refreshing attende from the queue + (process_callbacks): make all the callbacks and remove the + attendee from the queue + (process_free_busy): process the callbacks immediately if parsing + fails or on successful completion of processing + (async_close): process free busy + (cursor_cb): we're only looking for one at a time now + (refresh_busy_periods): idle callback to start processing the queue + (e_meeting_model_refresh_all_busy_periods): add every row to the queue + (e_meeting_model_refresh_busy_periods): add a single row to the queue + + * gui/e-meeting-model.h: new protos, enum the columns + + * gui/e-meeting-time-sel.c: use new compare time function + (e_meeting_time_selector_construct): listen for a cell changed + signal and use separate callbacks for rows_inserted and + rows_deleted + (e_meeting_time_selector_refresh_free_busy): util function to + refresh free busy info + (e_meeting_time_selector_on_update_free_busy): use above + (rows_inserted_cb): refresh free busy on the new rows + (cell_changed_cb): refresh free busy on the row when the address + changes + (rows_deleted_cb): redraw + + * gui/e-meeting-utils.[hc]: a holding spot for a meeting time + comparison function + + * gui/Makefile.am: compile new files + +2002-02-13 Rodrigo Moya <rodrigo@ximian.com> + + * gui/control-factory.c (set_prop): don't append 'calendar.ics' + to the URI. + (get_prop): finished. + + * gui/tasks-control.c (tasks_control_set_property): don't append + 'tasks.ics' to the URI. + (tasks_control_get_property): finished. + + * gui/gnome-cal.c (gnome_calendar_open): + * gui/e-tasks.c (e_tasks_open): append $filename.ics to the uri to be + opened if the uri is local. Leave intact in other cases. + +2002-02-08 Damon Chaplin <damon@ximian.com> + + * gui/comp-util.c (cal_comp_util_compare_event_timezones): check if + the CalComponentDateTime values are set before trying to use them. + Possibly fixes bug #18529. + + * importers/icalendar-importer.c: added vCalendar importer and + intelligent GnomeCalendar importer code here, as it shares a lot of + code with the iCalendar importer. + + NOTE: check_folder_type() needs to be finished at some point. + It needs a new shell Corba call so it can decide whether to import + events or tasks into the folder. Currently it just imports both. + + * importers/main.c (importer_factory_fn): create vCalendar importer + or GnomeCalendar importer if required. + + * importers/evolution-calendar-importer.h: added declarations for + creating a vCalendar importer and intelligent Gnome Calendar importer. + + * importers/Makefile.am: added -DEVOLUTION_SOUNDDIR so the importer + knows what filename to use for audio alarms in vCalendar files. + Added libicalvcal-evolution to LDADD. + + * importers/GNOME_Evolution_Calendar_Importer.oaf.in: added vCalendar + importer and intelligent Gnome Calendar importer. + + * gui/comp-util.c (cal_comp_util_compare_event_timezones): return TRUE + if the event uses UTC. We don't want to flag all events from Outlook, + which use UTC. + +2002-02-08 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/task-details-page.glade: change custom widget + creator to e_url_entry_new + + * gui/dialogs/task-details-page.c (get_widgets): get the url entry + and its entry + +2002-02-08 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/task-details-page.glade: add a custom widget created + with e_url_button_new + + * gui/dialogs/task-details-page.c (task_details_page_init): init + url_button member to NULL + (init_widgets): set the url button entry + (get_widgets): get the url button + + * gui/calendar-commands.c (pixmaps): use new all day event icon + +2002-02-07 JP Rosevear <jpr@ximian.com> + + * gui/e-day-view.c: pass meeting boolean for + gnome_calendar_edit_object and gnome_calendar_new_appointment_for + + * gui/e-week-view-event-item.c: ditto + + * gui/e-week-view.c: ditto + + * gui/tasks-control.c (confirm_expunge): kill warning + + * gui/calendar-commands.c (new_meeting_cb): show a new meeting + dialog + (new_event_cb): pass new param + + * gui/gnome-cal.c (gnome_calendar_edit_object): take meeting + boolean and show meeting page if true + (gnome_calendar_new_appointment_for): takeing meeting param and + pass to above + (gnome_calendar_new_appointment): add new param + + * gui/gnome-cal.h: update proto + + * gui/component-factory.c (create_component): take a comp editor + mode, determine vtype + (sc_user_create_new_item_cb): check for meeting user creatable + item + (create_object): add meeting as user creatable item + + * gui/comp-editor-factory.c (edit_new): get a comp editor mode + now, determine vtype and show meeting page if required + (queue_edit_new): get comp editor mode + (impl_editNew): ditto, plus queue the mode directly instead of + determining the vtype + + * gui/dialogs/event-editor.c (show_meeting): new internal util + function to show meeting page + (event_editor_show_meeting): show the meeting + (schedule_meeting_cmd): use show_meeting + + * gui/dialogs/event-editor.h: new proto + + * idl/evolution-calendar.idl: editNew takes a mode rather than a + type now + + * cal-util/Makefile.am: fix includes + +2002-02-07 Christopher James Lahey <clahey@ximian.com> + + * gui/e-tasks.c (e_tasks_setup_view_menus), gui/gnome-cal.c + (gnome_calendar_setup_view_menus): Made these use the new + GalViewMenus stuff. + +2002-02-06 Damon Chaplin <damon@ximian.com> + + * cal-util/cal-recur.c (cal_recur_from_icalproperty): convert months + from 1-12 to 0-11. Fixes bug #19235. + +2002-02-04 JP Rosevear <jpr@ximian.com> + + * conduits/todo/todo-conduit.c (e_todo_gui_new): new gui routines + for conduit settings + (e_todo_gui_fill_config): ditto + (e_todo_gui_fill_widgets): ditto + (e_todo_gui_destroy): ditto + (e_todo_context_destroy): destroy new_cfg and gui properly + (local_record_from_comp): set the priority to the default setting + if none is set on the icalendar object + (fill_widgets): fill gui widgets + (create_settings_window): create gui + +2002-01-30 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (write_html): if this is a reply, print the + attendee status + +2002-01-25 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/alarm-options.glade: Use 1 instead of zero as the + minimum value for the repetitions spin button as we use a check + box to specify whether the alarm has repetitions or not. Fixes + bug #19054. + +2002-01-24 Ettore Perazzoli <ettore@ximian.com> + + * importers/Makefile.am (evolution_calendar_importer_LDADD): + Ooops. Forgot to use EVOLUTION_CALENDAR_LIBS here. + +2002-01-24 Ettore Perazzoli <ettore@ximian.com> + + * conduits/calendar/Makefile.am: Use + EVOLUTION_CALENDAR_CONDUIT_LIBS and + EVOLUTION_CALENDAR_CONDUIT_CFLAGS. + * conduits/todo/Makefile.am: Likewise. + + * cal-client/Makefile.am: Use EVOLUTION_CALENDAR_LIBS and + EVOLUTION_CALENDAR_CFLAGS. + * cal-util/Makefile.am: Likewise. + * gui/alarm-notify/Makefile.am: Likewise. + * gui/Makefile.am: Likewise. + +2002-01-23 Ettore Perazzoli <ettore@ximian.com> + + * gui/component-factory.c (create_object): Pass a NULL @icon to + `evolution_shell_component_add_user_creatable_item()'. + +2002-01-21 JP Rosevear <jpr@ximian.com> + + * conduits/todo/todo-conduit.c (todoconduit_load_configuration): + return a new configuration struct, load default priority setting + (todoconduit_save_configuration): save default priority setting + (e_todo_context_new): dupe configuration + + * conduits/calendar/calendar-conduit.c (e_calendar_context_new): + set ps to NULL + +2002-01-17 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/alarm-page.c (get_alarm_string): save the alarm string + in the correct variable (str), so it actually gets shown for alarms + with specific trigger times. Fixes bug #18801. + +2002-01-15 Rodrigo Moya <rodrigo@ximian.com> + + * gui/dialogs/task-page.c (task_page_fill_widgets): default component + classification to PUBLIC. Fixes internal bug #1066 + +2002-01-14 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c: move all functions here, + get rid of header files, use e-pilot-settings to display gui + + * conduits/todo/todo-conduit.c: as above + +2002-01-14 JP Rosevear <jpr@ximian.com> + + * gui/gnome-cal.c (get_current_time): use icaltimetype_to_tm + +2002-01-14 JP Rosevear <jpr@ximian.com> + + * gui/e-week-view-main-item.c (e_week_view_main_item_draw_day): + figure out when today is and highlight if it is not selected + + * gui/e-week-view.h: enum the "today" color + + * gui/e-week-view.c (e_week_view_realize): init the "today" color + +2002-01-13 JP Rosevear <jpr@ximian.com> + + * gui/alarm-notify/save.h: add protos + + * gui/alarm-notify/save.c (save_blessed_program): records a + program as blessed + (is_blessed_program): checks to see if a program is blessed + + * gui/alarm-notify/alarm-queue.c (procedure_notification_dialog): + popup a dialog notifying the user that is a program and let them + not see the dialog about this program again + (procedure_notification): use above + +2002-01-11 Damon Chaplin <damon@ximian.com> + + * gui/e-timezone-entry.c: + * gui/e-itip-control.c (write_label_piece): + * gui/calendar-config.c (on_timezone_set): translate timezone names + when displayed. Fixes bug #6544. + +2002-01-03 JP Rosevear <jpr@ximian.com> + + * gui/tasks-control.c (tasks_control_complete_cmd): new verb + callback + (sensitize_commands): set sensitivity of mark complete command + + * gui/e-tasks.h: new proto + + * gui/e-tasks.c (e_tasks_complete_selected): mark selected tasks + in the table as complete + + * gui/e-calendar-table.h: new proto + + * gui/e-calendar-table.c (e_calendar_table_complete_selected): + mark selected rows as complete + +2002-01-03 JP Rosevear <jpr@ximian.com> + + * gui/tasks-control.c (confirm_expunge): only need one warning + message now + + * gui/e-tasks.c (create_sexp): change the logic to expunge all + completed tasks not just hidden ones + +2002-01-03 JP Rosevear <jpr@ximian.com> + + * gui/tasks-control.c (confirm_expunge): confirm expunging of the + tasks + (tasks_control_expunge_cmd): verb callback + + * gui/calendar-config.c (config_read): read confirm expunge value + (calendar_config_write): write confirm expunge value + (calendar_config_write_on_exit): ditto + (calendar_config_get_confirm_expunge): get value + (calendar_config_set_confirm_expunge): set value + + * gui/calendar-config.h: new proto + + * gui/e-itip-control.c (start_calendar_server): kill warning + + * gui/e-tasks.c (e_tasks_init): init query member to NULL + (set_status_message): util function to set status message + (e_tasks_open): use above + (cal_opened_cb): ditto + (create_sexp): create sexp of items to be deleted + (query_obj_updated_cb): remove any items found + (query_eval_error_cb): bail out on error + (query_query_done_cb): tidy when done + (e_tasks_delete_completed): set up query + + * gui/e-tasks.h: new proto + + * gui/calendar-model.c (query_query_done_cb): use g_warning + instead of printing to stderr + (query_eval_error_cb): ditto + (update_query): clear the status message if we can't create the + query + + * gui/tag-calendar.c (resolve_tzid_cb): make this static + +2001-12-21 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/comp-editor.c: remove needs send signal related + cruft + (save_comp_with_send): with send_component_dialog, indicate if the + meeting info is newly created or not + (real_edit_comp): remember if the dialog initially needs a send + + * gui/dialogs/send-comp.c (send_component_dialog): take a "new" + parameter indicating whether the dialog should intimate if the + component to be sent is a new meeting or not + + * gui/dialogs/send-comp.h: update proto + + * gui/dialogs/comp-editor.c: remove no longer used needs_send + notification and signal + + * gui/dialogs/comp-editor.h: remove proto + + * gui/e-day-view.c (e_day_view_on_main_canvas_drag_data_received): add new + param to send_component_dialog + (e_day_view_finish_long_event_resize): ditto + (e_day_view_finish_resize): ditto + (e_day_view_on_editing_stopped): ditto + (e_day_view_on_top_canvas_drag_data_received): ditto + + * gui/e-week-view.c (e_week_view_on_editing_stopped): add new + param to send_component_dialog + +2001-12-21 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/comp-editor.h: inherit from bonobo window + + * gui/dialogs/comp-editor.c: inherit from bonobo window + (comp_editor_key_press_event): Look for an escape key press and + close the window if found + +2001-12-20 Ettore Perazzoli <ettore@ximian.com> + + [Fixes #17377, Evolution doesn't work on multi-depth displays.] + + * gui/main.c (main): Push GdkRGB visual and colormap. + +2001-12-19 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (check_for_slow_setting): + go slow and clear the map if the last uri and the current uri do + not match + (post_sync): save the last uri + + * conduits/calendar/calendar-conduit-config.h: handle a last uri + config option + + * conduits/todo/todo-conduit-config.h: ditto + + * conduits/calendar/calendar-conduit.c (start_calendar_server): + use the open_default_calendar method + + * conduits/todo/todo-conduit.c (start_calendar_server): same as above + + * cal-client/Makefile.am: link with bonobo conf + + * cal-client/cal-client.h: new protos + + * idl/evolution-calendar.idl: make sure open method raises + appropriate exceptions + + * gui/e-itip-control.c (start_calendar_server): use + cal_client_open_default_* calls + + * cal-client/cal-client.c (real_open_calendar): do the real work + of loading + (cal_client_open_calendar): use above + (get_fall_back_uri): get the basic local uri + (get_default_uri): get the default uri from the config db + (cal_client_open_default_calendar): open the default uri or the + fallback if the method is unsupported + (cal_client_open_default_tasks): same for tasks + +2001-12-17 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (send_item): use get_real_item + (get_refresh_options): uncomment out + (get_real_item): obtain the real object which has the uid of the + item received + (show_current_todo): use get_refresh_options for refresh method + and provide the description and summary from the real component + since its not in the reply + (show_current_event): ditto + (send_item): use get_real_item + +2001-12-17 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (comp_limit_attendees): can't remove properties + in an iteration loop, so remove them outside the loop + (comp_minimal): don't set a recurid if there isn't one, add the x + properties to the clone + (comp_compliant): unref the clone for DECLINECOUNTER + + * gui/e-itip-control.c (get_refresh_options): make function + available again + (show_current_event): use it here + (ok_clicked_cb): can't remove properties in an iteration loop, so + remove them outside the loop + + * cal-util/cal-component.c (free_icalcomponent): properly free the + attendee list + (cal_component_rescan): don't destroy the alarm hash + +2001-12-13 Damon Chaplin <damon@ximian.com> + + * zones.h: new file to contain all timezone names for translation. + We won't be using the translations in 1.0.1, but it gives translators + time before we do use them in 1.0.2. + + * Makefile.am: added zones.h to EXTRA_DIST. + +2001-12-12 JP Rosevear <jpr@ximian.com> + + * gui/e-day-view.c (e_day_view_on_top_canvas_button_release): + ungrab the pointer before calling + e_day_view_finish_long_event_resize + (e_day_view_on_main_canvas_button_release): ditto + (e_day_view_finish_long_event_resize): ask if the meeting should + be sent + (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 + +2001-12-11 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-model.c (process_free_busy_comp): properly convert + the dtstart and dtend times if they are UTC + (cursor_cb): if we don't have anybody to get f/b info for, process + the callbacks immediately + (e_meeting_model_refresh_busy_periods): take start/end times, + calculate the timet values with object timezone + (e_meeting_model_etable_model_to_view_row): proper cast + (e_meeting_model_etable_view_to_model_row): ditto + (async_open): bail out if we couldn't open properly + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_on_update_free_busy): use defines for + determining the number of days before and after of free busy to + request + (e_meeting_time_selector_update_dates_shown): use defines for the + number of days shown + + * gui/e-meeting-model.h: update proto + +2001-12-10 Damon Chaplin <damon@ximian.com> + + * gui/control-factory.c (control_factory_new_control): removed code + that connects to GnomeCalendar's "dates_shown_changed" signal. + + * gui/calendar-commands.c (gcal_calendar_dates_change_cb): + (calendar_control_activate): moved it here, so it gets reconnected + whenever the control is activated. Fixes bug #15798. + +2001-12-10 Damon Chaplin <damon@ximian.com> + + * importers/GNOME_Evolution_Calendar_Importer.oaf.in: fixed executable + name. Fixes bug #16880. + +2001-12-08 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (local_record_from_comp): + if we have an alarm that can be represented on the pilot, set the + appointment fields appropriately, if the duration has values for + minutes and/or hours and/or days, use the lowest common + denominator + (comp_from_remote_record): if the appointment on the pilot has an + alarm, find the first alarm an item currently had that is relative + to the start and with a negative duration and update it (or create + a new one if no valid ones exist) + + * cal-util/cal-component.c (cal_component_get_alarm_uids): build + list in the order they appear in the component so we get + consisting order for the gui and for the pilot + +2001-12-08 Rodrigo Moya <rodrigo@ximian.com> + + * gui/calendar-config.c (calendar_config_get_default_uri): + (calendar_config_get_default_tasks_uri): s/%/%s + +2001-11-09 Federico Mena Quintero <federico@ximian.com> + + (committed by Damon) + + Fix bug #14699. + + * pcs/query.c (QueryState): Added a state QUERY_WAIT_FOR_BACKEND + to indicate that the query is not populated as we are waiting for + the backend to be opened. + (query_init): Start in the QUERY_WAIT_FOR_BACKEND state. + (query_destroy): Only disconnect from the backend if we are in a + state that implies that we are connected to its signals. + (query_construct): If the backend is already loaded, immediately + set the state to QUERY_START_PENDING. + (backend_opened_cb): Disconnect from the backend's "opened" + signal. Set the state to QUERY_START_PENDING. + (match_component): We can now only match components if the query + is in progress or if it is done. Assert to that effect, and do + not ensure_sexp(). + (match_component): Do not check for a nonexistent component using + g_return_if_fail(). Also, there is no need to ref/unref the + component. + (backend_obj_updated_cb): Assert to the effect of our state. + (backend_obj_removed_cb): Likewise. + (parse_sexp): Renamed from ensure_sexp(). Assert that the query + has not started. Do not disconnect from the backend's signals + here, since we have no connections. + (start_query_cb): Set the state to QUERY_IN_PROGRESS here instead + of in populate_query(). + +2001-12-07 Rodrigo Moya <rodrigo@ximian.com> + + * gui/calendar-config.c (calendar_config_get_default_uri): + (calendar_config_get_default_tasks_uri): if the key in the config + database does not exist, just return the local URIs, but never + return NULL + +2001-12-06 Rodrigo Moya <rodrigo@ximian.com> + + * gui/dialogs/event-page.c (event_page_fill_widgets): default + component classification to PUBLIC + +2001-12-06 Jon Trowbridge <trow@ximian.com> + + * gui/dialogs/event-editor.c (event_editor_destroy): Explicitly + destroy the EMeetingModel. This is a hack to work around problems + with the reference counting; we are still leaking the + EMeetingModels. + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_construct): Ref our EMeetingModel. + (e_meeting_time_selector_destroy): Unref the model. + + * gui/e-meeting-model.c (destroy): Properly destroy + corba_select_names with a call to bonobo_object_release_unref. + (Fixes 14002) + +2001-12-05 Rodrigo Moya <rodrigo@ximian.com> + + * gui/dialogs/event-page.glade: added entry for the LOCATION field + + * gui/dialogs/event-page.c: added support for the new LOCATION entry + added in the Event editor. + +2001-12-05 Zbigniew Chyla <cyba@gnome.pl> + + * gui/itip-utils.c (comp_subject, comp_description): + Marked strings for translation. + +2001-12-03 Damon Chaplin <damon@ximian.com> + + * gui/e-meeting-model.c: + * gui/calendar-model.c: make sure we call e_table_model_pre_change() + before changing the model. + + * gui/calendar-config.c (calendar_config_configure_e_calendar_table): + removed call to e_table_model_changed(). calendar_model_refresh() + results in that anyway. + +2001-12-03 Damon Chaplin <damon@ximian.com> + + * gui/e-calendar-table.etspec: disabled 'Alarms', 'End Date' and + 'Show Time As' fields, as these are not useful for tasks. We may want + to reenable them later if we add a table view of calendar events. + +2001-12-02 Rodrigo Moya <rodrigo@ximian.com> + + * gui/calendar-offline-handler.c (backend_cal_opened): connect to + "cal_set_mode" signal before calling cal_client_set_mode. Also, + s/cal_mode_set/cal_set_mode + (backend_go_offline): connect to "cal_opened" signal before calling + cal_client_open_calendar + +2001-11-30 Damon Chaplin <damon@ximian.com> + + * gui/e-itip-control.c (remove_item): only show the dialog if we + created it. Hopefully fixes bug #15774. + Also ifdef'ed out a lot of code that isn't currently used, including + code to use a label which is never created. The unused code was there + to support handling multiple iTIP objects in a message, but was never + updated when we switched to use HTML for the control. Fixes bug #16232. + +2001-11-28 Federico Mena Quintero <federico@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_new_task): Set the category of + the new task to that of the search bar. Fixes bug #15533. + +2001-11-27 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-itip-control.c (update_attendee_status): + * gui/itip-utils.c (comp_to_list): fixed typos in translatable + strings. Fixes Ximian #15456 + +2001-11-14 Damon Chaplin <damon@ximian.com> + + * gui/print.c: Substituted gnome_font_get_width_string() with + gnome_font_get_width_utf8() and gnome_font_get_width_string_n() + with gnome_font_get_width_utf8_sized(). Fixes calendar part of #15379. + +2001-11-14 Federico Mena Quintero <federico@ximian.com> + + * gui/calendar-model.c (date_value_to_string): Convert the buffer + to UTF8. + (calendar_model_value_to_string): Do not convert the string fields + to UTF8 again; they are already in UTF8. Fixes the UTF8-related + bits of bug #15304. + +2001-11-14 Damon Chaplin <damon@ximian.com> + + * gui/calendar-model.c: + * cal-util/cal-component.h: #ifdef'ed out the LOCATION field for now, + since it wasn't supported everywhere, or in the .etspec file. + +2001-11-14 Damon Chaplin <damon@ximian.com> + + * gui/e-calendar-table.c: don't abort when e_table_selected_count() + returns odd values. There seems to be a bug in ETable. This is to + avoid bug #13843. + +2001-11-13 Federico Mena Quintero <federico@ximian.com> + + (committed to CVS by Damon) + Fixes bug #15137. + + * gui/e-day-view.c (e_day_view_on_delete_appointment): Do not try + to operate on the event if it gets deleted while stopping the + edition. + (e_day_view_on_event_double_click): Likewise. + (e_day_view_on_long_event_button_press): Likewise. + (e_day_view_on_event_button_press): Likewise. + (e_day_view_on_long_event_click): Likewise. + (e_day_view_on_event_click): Likewise. + + * gui/e-week-view.c (e_week_view_on_text_item_event): Likewise. + +2001-11-14 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (pre_sync): remove silly + debug warning + +2001-11-13 Damon Chaplin <damon@ximian.com> + + * gui/alarm-notify/config-data.c (ensure_inited): + * gui/calendar-config.c (config_read): + * conduits/todo/todo-conduit.c (get_default_timezone): + * conduits/calendar/calendar-conduit.c (get_default_timezone): + make the timezone default to UTC. Fixes bug #14362. + +2001-11-13 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-week-view.c (selection_received): only change the day, + month and year for the start date, for not screwing up the start + time, which was being set to midnight always (Fixes Ximian #5287) + Also, deal correctly with VCALENDAR components + + * gui/e-day-view.c (selection_received): dela correctly with + VCALENDAR components being pasted + +2001-11-11 Federico Mena Quintero <federico@ximian.com> + + * gui/alarm-notify/save.c (get_calendars_to_load): The last + argument to the bonobo_config_get_XXX_with_default() is a gboolean + *, not a CORBA_Environment *. Fixes bug #14655. + +2001-11-11 JP Rosevear <jpr@ximian.com> + + * pcs/cal-backend-file.c (free_busy_instance): recurrence + expansion callback for free/busy + (create_user_free_busy): expand recurrences and use date/time + values for dtstart and dtend + +2001-11-11 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-model.h: new protos + + * gui/e-meeting-model.c (e_meeting_model_get_zone): accessor + (e_meeting_model_set_zone): ditto + (init): init to the calendar default zone + (process_free_busy_comp): take the zone to convert to as a param + (e_meeting_model_refresh_busy_periods): redraw properly + + * gui/dialogs/schedule-page.c (update_time): set the zone of the + model + +2001-11-09 Damon Chaplin <damon@ximian.com> + + * gui/e-week-view.c (e_week_view_key_press): don't subtract a day + from DTEND. For DATE values we don't include the entire day now. + Fixes bug #14842. + +2001-11-09 Damon Chaplin <damon@ximian.com> + + * gui/e-week-view-layout.c (e_week_view_layout_events): fix buffer + overflow. Fixes bug #10285 (the printing of lines & dates in the + printout of the month view). + +2001-11-09 Zbigniew Chyla <cyba@gnome.pl> + + * gui/dialogs/meeting-page.c + (meeting_page_fill_widgets): Convert strings to GTK+ encoding. + (meeting_page_destroy): Free allocated strings before freeing the list + itself. + +2001-11-08 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_timeout_handler): don't let an empty + event occur for all days when auto scrolling + +2001-11-08 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-backend-file.c + (cal_backend_file_compute_changes_foreach_key): don't leak the + string returned by cal_component_get_as_string nor the temporary + CalComponent we create + +2001-11-08 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (ok_clicked_cb): don't add the item, remove + it if declining (in case it was added before) + (remove_item): Since we can't discern between an item not found + and another error, always say the removal is complete + +2001-11-07 Zbigniew Chyla <cyba@gnome.pl> + + * gui/e-cell-date-edit-text.c (ecd_get_text): + Convert generated string to UTF-8. + +2001-11-07 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_on_start_time_changed): emit changed + signal + (e_meeting_time_selector_on_end_time_changed): emit changed + signal, if end time is now before start time and all day event, + make sure a whole day is still selected + (e_meeting_time_selector_drag_meeting_time): calculate the first + and last_time's in whole days for all day events + (e_meeting_time_selector_timeout_handler): calculate the drag time + to be whole days for all day events and scroll the canvas even if + we don't update the time so the user can see where they're headed + +2001-11-06 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/event-editor.c (event_editor_edit_comp): make sure + to remove all attendees from the model when we edit a new comp, + append the pages if they are needed and we weren't showing them + before + + * gui/dialogs/task-editor.c (task_editor_edit_comp): same as above + + * gui/dialogs/comp-editor.c (comp_editor_remove_page): check for a + return value indicating the page was not found and return if so + +2001-11-05 Ettore Perazzoli <ettore@ximian.com> + + * gui/dialogs/e-delegate-dialog.c: #include + "Evolution-Addressbook-SelectNames.h", not + "../Evolution-Addressbook-SelectNames.h". Grrr. + +2001-11-05 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_class_init): + add a changed signal + (e_meeting_time_selector_construct): emit changed signal + (e_meeting_time_selector_set_meeting_time): ditto + (e_meeting_time_selector_set_all_day): set the all day setting + (e_meeting_time_selector_autopick): emit changed signal + (e_meeting_time_selector_find_nearest_interval): find proper + interval when in all day mode + (e_meeting_time_selector_find_nearest_interval_backward): ditto + (e_meeting_time_selector_drag_meeting_time): for all day events, + move the time when past the 12 hour mark, and and always make sure + 1 full day is selected, emit changed signal when appropriate + (e_meeting_time_selector_update_start_date_edit): set date and + time of day together + (e_meeting_time_selector_update_end_date_edit): ditto, and adjust + display time if all day event + + * gui/e-meeting-time-sel-item.c + (e_meeting_time_selector_item_draw): remove unused variable + (e_meeting_time_selector_item_button_press): for all day mode, + make the interval a whole day + + * gui/dialogs/schedule-page.c (update_time): set the meeting time + selector setting instead of manual mucking with the e-date-edit + widgets + (init_widgets): listen to the changed signal of the meeting time + selector instead of propagating multiple events as it updates + + * gui/dialogs/event-page.c (update_time): block time zone change + signals + +2001-11-05 Damon Chaplin <damon@ximian.com> + + * gui/calendar-model.c (dup_date_edit_value): removed ';' in the wrong + place. Fixes bug #14421. + +2001-11-05 Dan Winship <danw@ximian.com> + + * gui/alarm-notify/Makefile.am (evolution_alarm_notify_LDFLAGS): + -export-dynamic for libglade custom widget. + +2001-11-04 Damon Chaplin <damon@ximian.com> + + * gui/comp-editor-factory.c (get_default_component): use TZID from the + builtin timezone, instead of using the location name. + +2001-11-02 Federico Mena Quintero <federico@ximian.com> + + * cal-util/cal-util.c (compute_alarm_range): Short-circuit the + calculation of the repeat time if there are zero repetitions. + (compute_alarm_range): I'm a moron. De-reference alarm_start when + subtracting stuff from it! Fixes bug #14209. + +2001-10-31 Ettore Perazzoli <ettore@ximian.com> + + * gui/dialogs/Makefile.am: Added rules to generate + `Evolution-Addressbook-SelectNames.h'. + + * gui/dialogs/comp-editor-util.h: #include + "Evolution-Addressbook-SelectNames.h" from this directory. + +2001-10-31 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/alarm-options.c: #include <string.h> + +2001-10-31 Federico Mena Quintero <federico@ximian.com> + + * gui/gnome-cal.c (dn_query_obj_updated_cb): If a query is not in + progress, just retag the whole thing. An event may change dates + and tag_calendar_by_comp() would not know how to untag the old + dates. Fixes bug #10220. + + * pcs/query.c (start_query_cb): Connect to the backend's + "obj_updated" and "obj_removed" signals here instead of in + query_construct(). If a query is started while another one is + notifying of an update, these signal connections would get appened + to the running signal (the one that triggered the notification + about an update) and the new signal handlers would also get + called. We are really not interested in updates before we + populate the query, because we'll catch the changes anyways. + +2001-10-31 Federico Mena Quintero <federico@ximian.com> + + Fix bug #13723. + + * gui/gnome-cal.h (GnomeCalendarClass): New signals + "calendar_focus_change", "taskpad_focus_change", and + "taskpad_selection_changed". Renamed "selection_changed" to + "calendar_selection_changed". + + * gui/gnome-cal.c (gnome_calendar_get_num_tasks_selected): New + function. + (setup_widgets): Connect to the focus event signals of the task + pad and the calendar view widgets. + (gnome_calendar_delete_selection): Renamed from + gnome_calendar_delete_event(). + (gnome_calendar_cut_clipboard): Handle the current focus location. + (gnome_calendar_copy_clipboard): Likewise. + (gnome_calendar_paste_clipboard): Likewise. + (gnome_calendar_delete_selection): Likewise. + (table_selection_change_cb): New callback. + + * gui/calendar-commands.c (sensitize_calendar_commands): Take in + whether we should unconditionally disable everything. + (sensitize_taskpad_commands): Analogous function to the above. + (gcal_calendar_focus_change_cb): New callback, used for calendar + views. + (gcal_taskpad_focus_change_cb): New callback, used for the + taskpad. + + * gui/e-day-view.c (e_day_view_key_press): Use a better test for + keys that should start editing. Fixes bug #6447. + + * gui/e-week-view.c (e_week_view_key_press): Likewise. + +2001-10-31 Christopher James Lahey <clahey@ximian.com> + + * gui/calendar-model.c: Make the pre_changes and changes match + here. + +2001-10-31 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (itip_send_comp): send as mixed rather than + alternative + +2001-10-31 Ettore Perazzoli <ettore@ximian.com> + + * gui/alarm-notify/save.c (KEY_CALENDARS_TO_LOAD): + Removed. + (KEY_NUM_CALENDARS_TO_LOAD): New key, containing the number of + calendars to load. + (BASE_KEY_CALENDAR_TO_LOAD): New base key name for the URIs of the + calendars to load. + (save_calendars_to_load): Rewrote to not use a sequence, to work + around an ORBit bug that causes bonobo-moniker-xmldb to crash. + (get_calendars_to_load): Likewise. + +2001-10-30 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/comp-editor.c (comp_editor_remove_page): disconnect + signals added in append_page(). Fixes Gtk-Critical warning about + GtkAccelGroup being added twice to a window. + +2001-10-30 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (itip_send_comp): set a body for the message + +2001-10-30 Dan Winship <danw@ximian.com> + + * gui/itip-utils.c (itip_send_comp): call + GNOME_Evolution_Composer_setMultipartType to get a + multipart/alternative. + +2001-10-30 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_on_start_time_changed): don't overwrite + memory + (e_meeting_time_selector_on_end_time_changed): ditto + +2001-10-30 Damon Chaplin <damon@ximian.com> + + * gui/calendar-model.c (dup_date_edit_value): return NULL if passed + NULL. Should fix bug #14048. + +2001-10-30 Federico Mena Quintero <federico@ximian.com> + + * gui/calendar-config.c (config_read): Do not ignore the + exceptions of the cases that do not have defaults. + +2001-10-30 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_drag_meeting_time): if we are doing all + day stuff, make the drag increment 1 day at a time + +2001-10-30 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/meeting-page.c (meeting_page_fill_component): Add + _() to a string that was missing it. + +2001-10-30 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/meeting-page.c (table_canvas_focus_out_cb): Commit + the ETable click-to-add for if the dialog is being destroyed. + Should fix bug #13959. + +2001-10-30 Federico Mena Quintero <federico@ximian.com> + + * gui/itip-utils.c (itip_send_comp): Allocate enough space for the + string! (was missing the null terminator) Possibly fixes #13924. + Thanks a *LOT* to Michael Zucchi for running this through Purify. + +2001-10-30 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-time-sel-item.c + (e_meeting_time_selector_item_button_press): move in whole day + increments if we are in all day mode + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_on_start_time_changed): get rid of + localtime call + (e_meeting_time_selector_on_end_time_changed): ditto + (e_meeting_time_selector_update_start_date_edit): set the date + editor using the meeting time fields directly + (e_meeting_time_selector_update_end_date_edit): ditto + + * gui/dialogs/schedule-page.c (update_time): do the set_show_time + stuff first + + * conduits/calendar/calendar-conduit.c (process_multi_day): don't + adjust the time, set the default timezone for date values + +2001-10-30 Dan Winship <danw@ximian.com> + + * gui/alarm-notify/Makefile.am (INCLUDES): + s/BONOBO_HTML_GNOME_LIBS/BONOBO_HTML_GNOME_CFLAGS/ + +2001-10-30 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-model.c (e_meeting_model_count_actual_attendees): + count the actual attendees (doesn't include people delegating + + * gui/e-meeting-time-sel.c: use + e_meeting_model_count_actual_attendees (renamed) + + * gui/e-meeting-time-sel-item.c: use + e_meeting_model_etable_view_to_model_row calls instead of calling + on the model directly, use e_meeting_model_count_actual_attendees + + * gui/e-meeting-model.c + (e_meeting_model_etable_model_to_view_row): get the real mapping + (e_meeting_model_etable_view_to_model_row): ditto + (get_key): e-table-without callback + (duplicate_key): ditto + (free_gotten_key): ditto + (free_duplicated_key): ditto + (init): create without model + (e_meeting_model_etable_from_model): build etable from without + model + + * gui/e-meeting-model.h: update protos + + * gui/dialogs/meeting-page.c (right_click_cb): convert row from + view to model row + +2001-10-30 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/task-page.c (task_page_fill_widgets): set to the default + timezone for DATE values, in case the user switches to a DATE-TIME. + +2001-10-30 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/task-page.c: handle DATE values for Start and Due dates. + +2001-10-30 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/schedule-page.c: + * gui/dialogs/event-page.c: + * gui/dialogs/comp-editor-util.c: updated code to handle DATE values. + + * gui/gnome-cal.c (gnome_calendar_new_appointment_for): + * gui/e-day-view.c (e_day_view_key_press): updated DATE code. + + * gui/e-cell-date-edit-text.c: + * gui/calendar-model.c: updated to support DATE values. + + * cal-util/cal-recur.c (cal_recur_generate_instances_of_rule): updated + to use DATE values in same way as Outlook - i.e. the DTEND date is + not included entirely. Though I did make it so that if the DTSTART + and DTEND used the same DATE value, it includes the entire day. + So 1-day events should be the same. Long All-Day events will be + 1 day shorter. + + * cal-util/cal-component.c (cal_component_get_start_plus_duration): + don't subtract a day from the end date. + + * gui/tasks-control.c: updated the EPixmap paths for Cut/Copy etc. + Removed Print & Print Preview paths, since we don't have menu commands + for these any more. + +2001-10-30 Federico Mena Quintero <federico@ximian.com> + + Fix bug #10016. + + * gui/dialogs/comp-editor.c (comp_editor_merge_ui): Use + bonobo_ui_util_set_ui() instead of doing things by hand. Hmmm, if + only that function had a way of telling us whether it failed so + that we could avoid setting the verb list... + + * gui/dialogs/event-editor.c (event_editor_init): Do not pass the + filename with the full path so that Bonobo can find it in a smart + way. + + * gui/dialogs/task-editor.c (task_editor_init): Likewise. + +2001-10-30 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/delete-comp.c (delete_component_dialog): Use an + EMessageBox instead of a gnome_dialog_question so that the label + gets line breaking. Fixes bug #11260. + +2001-10-29 Federico Mena Quintero <federico@ximian.com> + + Fix bug #13649. + + * gui/calendar-config.c + (calendar_config_get_use_default_reminder): New function. + (calendar_config_set_use_default_reminder): New function. + (calendar_config_get_default_reminder_interval): New function. + (calendar_config_set_default_reminder_interval): New function. + (calendar_config_get_default_reminder_units): New function. + (calendar_config_set_default_reminder_units): New function. + (config_read): Get the options for default reminders. + (calendar_config_write): Set the options for default reminders. + + * gui/dialogs/cal-prefs-dialog.c (cal_prefs_dialog_show_config): + Set the default reminder widgets from the config values. + (cal_prefs_dialog_update_config): Set the config values from the + widgets. + + * gui/comp-util.c (cal_comp_event_new_with_defaults): New + function; creates a VEVENT component with the default alarm. + + * gui/e-day-view.c (e_day_view_key_press): Use + cal_comp_event_new_with_defaults (); + + * gui/e-week-view.c (e_week_view_key_press): Likewise. + * gui/calendar-model.c (calendar_model_append_row): Likewise. + * gui/comp-editor-factory.c (get_default_component): Likewise. + * gui/gnome-cal.c (gnome_calendar_new_appointment_for): Likewise. + + * cal-util/cal-component.c (ensure_alarm_properties_cb): Ensure we + have a DESCRIPTION property. + (cal_component_commit_sequence): Ensure we have the mandatory + alarm properties. + +2001-10-30 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-model.c (process_section): process an individual + section here + (select_names_ok_cb): call above + (get_select_name_dialog): listen for ok:dialog signal + +2001-10-29 Damon Chaplin <damon@ximian.com> + + * importers/Makefile.am (evolution_calendar_importer_LDADD): + * gui/Makefile.am (evolution_calendar_LDADD): + * cal-util/Makefile.am (test_recur_LDADD): + * cal-client/Makefile.am (client_test_LDADD): use libical-evolution.la + + * gui/dialogs/schedule-page.c: save the timezone passed in for the + start time, so if our times are changed we use this. Also, if the + end time was passed in in a different timezone, convert it. + Also hide the time fields for DATE values. Note that DATE values still + do not work. + + * gui/dialogs/meeting-page.glade: changed "Invite Others" to + "Invite Others..." to be consistent with the other page. + + * gui/dialogs/event-page.c (times_updated): + (all_day_event_toggled_cb): set is_date if appropriate. + + * gui/e-itip-control.c (write_label_piece): convert all UTC times to + the current timezone. Outlook sends simple, non-recurring, events as + UTC times, which isn't very useful. + +2001-10-29 Federico Mena Quintero <federico@ximian.com> + + * gui/main.c (launch_alarm_daemon): Launch the alarm daemon as + soon as the calendar component is started. Fixes bug #13867; + we can't really do much better than this. + +2001-10-29 Federico Mena Quintero <federico@ximian.com> + + * gui/tasks-control.c (pixmaps): Fix the verb names for the + pixmaps in the Edit menu; they were out of synch with the XML + UI description. + +2001-10-29 Chris Toshok <toshok@ximian.com> + + * pcs/cal-factory.c (cal_factory_dump_active_backends): new + function. + (dump_backend): new function. + + * pcs/cal-factory.h: add prototype for + cal_factory_dump_active_backends. + +2001-10-29 Federico Mena Quintero <federico@ximian.com> + + Fix bug #12163. + + * cal-util/cal-util.c (compute_alarm_range): Take alarm + repetitions into account. + (add_alarm_occurrences_cb): Add alarm repetitions. + (generate_absolute_triggers): Likewise. + (generate_absolute_triggers): Oops, absolute triggers are in UTC, + so convert them as such. Also, pay attention to the timezones of + the dtstart and dtend properties. + +2001-10-29 JP Rosevear <jpr@ximian.com> + + * importers/Makefile.am: include the header as a source so it gets + dist'ed. + +2001-10-29 Ettore Perazzoli <ettore@ximian.com> + + * importers/Makefile.am (INCLUDES): + s/BONOBO_CFLAGS/BONOBO_GNOME_CFLAGS/. + +2001-10-29 Rodrigo Moya <rodrigo@ximian.com> + + * importers/icalendar-importer.c (load_file_fn): fixed URI + construction, which was preventing importing into the root + calendar (~/evo/local/Calendar/) + +2001-10-29 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (is_all_day): handle date + values + +2001-10-29 Rodrigo Moya <rodrigo@ximian.com> + + * importers/: added evolution-calendar-importer binary, starting + with an iCalendar file importer + +2001-10-29 JP Rosevear <jpr@ximian.com> + + * conduits/todo/todo-conduit-config.h + (todoconduit_load_configuration): get the management object by id + + * conduits/calendar/calendar-conduit-config.h + (calconduit_load_configuration): ditto + +2001-10-29 Rodrigo Moya <rodrigo@ximian.com> + + * gui/calendar-config.[ch] (calendar_config_get_default_uri): + (calendar_config_set_default_uri): + (calendar_config_get_default_tasks_uri): + (calendar_config_set_default_tasks_uri): new functions for setting + and retrieving the default calendar URIs + + * gui/e-itip-control.c (init): don't use + hard-coded URI, but use the default calendar URI, as returned + by calendar_config_get_default_uri + (start_calendar_server): added a "gboolean tasks" parameter, so + that the local tasks.ics file is used if the calendar to be + started is for tasks when no default tasks URI is found in + the configuration + +2001-10-28 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (add_record): unref the + comp when finished + + * conduits/todo/todo-conduit.c (add_record): ditto + +2001-10-28 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/task-page.c (task_page_fill_widgets): added break + statements after each case, when setting the classification. + Fixes bug #13772. + +2001-10-28 Rodrigo Moya <rodrigo@ximian.com> + + * cal-client/cal-client.c (destroy_wombat_client): removed this + function, as we don't need to unref at all the WombatClient + object, since it is aggregated to the CalListener object, which + will take care of unrefing it (Fixes Ximian #12001) + (cal_client_open_calendar): create the WombatClient here + +2001-10-28 Damon Chaplin <damon@ximian.com> + + * gui/print.c (print_todo_details): get the tasks directly from the + CalendarModel, so we get the filtering & sorting for free. Fixes + bug #10280. Hmm. This seems too easy. It isn't going to work is it... + + * gui/gnome-cal.c (gnome_calendar_get_task_pad): new function to get + the TaskPad ECalendarTable, for printing. + + * gui/calendar-model.c: + * gui/calendar-config.c (calendar_config_get_hide_completed_tasks_sexp): + split this out from calendar-model.c so we could use it for printing, + but ended up doing that a different way. + + * gui/dialogs/task-page.c (init_widgets): removed a duplicated signal + connected to field_changed_cb(). + +2001-10-27 Damon Chaplin <damon@ximian.com> + + * gui/print.c (print_week_view): + (range_selector_new): when the week start day is set to Sunday, we + have to be careful to make sure we print the correct week, since + the previous Saturday is actually printed first. Fixes bug #13687. + (print_week_summary): always set compress_weekend to true if + multi_week_view is FALSE (i.e. we are printing the week view). + Fixes bug #13688. + + * gui/e-itip-control.c (send_freebusy): use the timezones from the + DTSTART and DTEND. + (write_label_piece): output the date-time and the timezone after it. + Note that we may want to convert it to the current timezone and display + that as well. Also converted COMPLETED to the current timezone. + And fixed all uses of old timezone functions. + + * gui/dialogs/comp-editor.c (commit_all_fields): added function to + set the focus in the window to NULL, so all fields lose their focus, + so they emit "changed" signals and update their values if needed. + We call this when most menu commands are used, e.g. 'Save and Close', + 'Print' etc. Fixes bug #11434. In future we should also check fields + are valid and show dialogs if they are not. + + * gui/calendar-model.c (get_completed): use the completed value + properly. Fixes bug #13694. + + * cal-util/timeutil.c (icaltimetype_to_tm_with_zone): don't check + from_zone and to_zone != NULL. A NULL zone is valid, it is for + floating times. + +2001-10-27 Federico Mena Quintero <federico@ximian.com> + + * gui/e-day-view.c (e_day_view_on_text_item_event): Cancel editing + if the user presses Escape. + + * gui/e-week-view.c (e_week_view_on_text_item_event): Likewise. + + * gui/cal-search-bar.c: #include <string.h> + +2001-10-27 Federico Mena Quintero <federico@ximian.com> + + * gui/e-day-view.c (e_day_view_on_editing_stopped): Delete + appointments with empty summaries. Fixes Ximian bug #780. + + * gui/e-week-view.c (e_week_view_on_editing_stopped): Likewise. + + * gui/dialogs/delete-comp.c (delete_component_dialog): Added an + argument to specify whether we unconditionally want single + components to be considered as not having a summary. + + * gui/comp-util.c (cal_comp_confirm_delete_empty_comp): New + function. + + * gui/misc.[ch]: New files with miscellaneous utility functions; + moved string_is_empty() over from calendar-model.c. + + * gui/calendar-model.c: Use the string_is_empty() + function from misc.c. + + * gui/Makefile.am (evolution_calendar_SOURCES): Added misc.[ch] to + the list of sources. + +2001-10-27 JP Rosevear <jpr@ximian.com> + + * conduits/todo/todo-conduit.c (local_record_from_comp): touch on + lookup + (check_for_slow_setting): write touched only if slow sync + (match): touch on lookup + + * conduits/calendar/calendar-conduit.c (local_record_from_comp): + touch the record on lookup + (check_for_slow_setting): write touched only if slow sync + (pre_sync): don't touch on lookup + (match): touch on lookup + +2001-10-26 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/e-calendar.conduit.in: remove the merges as + valid sync types + + * conduits/todo/e-todo.conduit.in: as above + + * conduits/calendar/calendar-conduit.c (pre_sync): write out only + the touched records if we are doing copies + + * conduits/todo/todo-conduit.c: as above + + * conduits/calendar/calendar-conduit-config.h + (calconduit_load_configuration): get the sync type + + * conduits/todo/todo-conduit-config.h: as above + +2001-10-26 Damon Chaplin <damon@ximian.com> + + * gui/e-itip-control.c (write_label_piece): convert the formatted + date to UTF-8. + + * cal-util/cal-recur.c (CAL_OBJ_DEBUG): turn off debug functions. + + * gui/dialogs/comp-editor-util.c (parse_contact_string): handle UTF8 + correctly. Bug #4450. Good enough for 1.0. + + * gui/e-week-view-event-item.c (e_week_view_draw_time): set the gc + color before drawing. Should fix bug #11469. + + * gui/dialogs/task-editor.c (task_editor_edit_comp): show or hide the + meeting page as appropriate. Note this may be called more than once, + if the task gets updated somewhere else and the user clicks 'Update + the object'. Hopefully fixes bug #12930. + + * gui/print.c (print_comp_item): printed more fields and made a little + prettier. Fixes bug #9352. + (print_date_label): used the correct timezones for each date field. + + * *.c: removed several debug messages. + +2001-10-26 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (check_for_slow_setting): + make debug output more accurate + + * conduits/todo/todo-conduit.c (check_for_slow_setting): ditto + +2001-10-26 JP Rosevear <jpr@ximian.com> + + * conduits/todo/todo-conduit.c (pre_sync): remove the uid from the + map if was archived and is now deleted + + * conduits/calendar/calendar-conduit.c: ditto + +2001-10-26 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-calendar_table.c (delete_selected_components): + (selection_received): added status bar messages + + * gui/e-day-view.c (e_day_view_cut_clipboard): + (selection_received): likewise + + * gui/e-week-view.c (e_week_view_cut_clipboard): + (selection_received): likewise + +2001-10-26 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.h: modify fields + + * conduits/todo/todo-conduit.h: as above + + * conduits/calendar/calendar-conduit.c (print_remote): free the + struct after use + (e_calendar_context_new): explicitly init context fields + (e_calendar_context_destroy): free local records and properly free + changed hash elements + (start_calendar_server_cb): tidy + (start_calendar_server): ditto + (free_local): free a local record + (local_record_to_pilot_record): use a static buffer to avoid leaks + (local_record_from_comp): only copy over alarm stuff from the + original record, we sync everything else + (local_record_from_uid): unref the comp when we are done + (pre_sync): free change_id + (post_sync): ditto + (for_each): track locals + (for_each_modified): ditto + (free_match): use free_local + + * conduits/todo/todo-conduit.c: as above + +2001-10-26 Federico Mena Quintero <federico@ximian.com> + + * pcs/cal.c (cal_construct): Get a fresh CORBA_Environment for + every CORBA call. Hopefully will fix #11978, but I'm not sure + about what else could be happening. + (cal_get_password): Free the exception. + +2001-10-25 Damon Chaplin <damon@ximian.com> + + * gui/e-itip-control.c: used functions to get PUBLISH_OPTIONS etc., + so we can translate them. + +2001-10-25 Damon Chaplin <damon@ximian.com> + + * cal-util/cal-recur.c (cal_obj_bysetpos_filter): subtract 1 from + any positive BYSETPOS value, since our array is 0-based. + + * gui/dialogs/recurrence-page.c (simple_recur_to_comp): + (recurrence_page_fill_widgets): Outlook (2000) will not accept monthly + recurrences like BYDAY=2TU. Instead it uses BYDAY=TU;BYSETPOS=2. + So to be compatable with it we now do the same, although we still + accept and convert the old format. + + * cal-client/cal-client.c (cal_client_get_component_as_string): new + function to return a complete VCALENDAR string containing a VEVENT + or VTODO with all the VTIMEZONEs it uses. + + * gui/dialogs/comp-editor.c (save_as_ok): use above function so we + save the VTIMEZONE data with the VEVENT/VTODO. Fixes bug #8626. + Also made sure we output "METHOD:PUBLISH" since Outlook (2000) will + not import it otherwise. + + * gui/dialogs/comp-editor.c (page_mapped_cb): + (page_unmapped_cb): install/uninstall the GtkAccelGroup for the page. + (comp_editor_append_page): connect to the map/unmap signals to + install/uninstall the accelerators. (This is all for bug #11609, + though of course it doesn't work too well in GTK+ 1.2 anyway.) + + * gui/dialogs/task-page.c (get_widgets): + * gui/dialogs/task-details-page.c (get_widgets): + * gui/dialogs/schedule-page.c (get_widgets): + * gui/dialogs/recurrence-page.c (get_widgets): + * gui/dialogs/meeting-page.c (get_widgets): + * gui/dialogs/event-page.c (get_widgets): + * gui/dialogs/alarm-page.c (get_widgets): got the GtkAccelGroup from + the original window, ref'ed it and placed it in the CompEditorPage + struct. + + * gui/dialogs/comp-editor-page.c (comp_editor_page_destroy): unref + any GtkAccelGroup for the page. + + * gui/dialogs/task-page.glade: changed '_Confidential' to + 'Con_fidential' as it clashed with '_Contacts'. It now matches the + event editor as well. + + * gui/dialogs/event-page.glade: + * gui/dialogs/task-page.glade: Set CAN_FOCUS to TRUE for the custom + EDateEdit widgets, and set them as the accel targets of the labels. + +2001-10-25 Rodrigo Moya <rodrigo@ximian.com> + + * gui/dialogs/comp-editor.c (save_comp): show an error message when + we can't update the object on the calendar server + +2001-10-25 Federico Mena Quintero <federico@ximian.com> + + * gui/control-factory.c: Ifdef-ed out the PersistFile bits. + + * gui/GNOME_Evolution_Calendar.oaf.in: The tasks folder does not + support the PersistFile interface; removed it. Removed it as well + from the calendar folder since it is aggregated but not actually + implemented. + +2001-10-25 Federico Mena Quintero <federico@ximian.com> + + * gui/component-factory.c (xfer_folder): Handle tasks folders as + well; was always using "calendar.ics" as the filename. + +2001-10-24 Damon Chaplin <damon@ximian.com> + + * gui/GNOME_Evolution_Calendar.oaf.in: added sections for Tasks + factory and control. I hope someone checks these! + +2001-10-24 Ettore Perazzoli <ettore@ximian.com> + + * gui/component-factory.c (xfer_folder): Fixed to only copy the + `calendar.ics' and `calendar.ics~' files. + +2001-10-24 Damon Chaplin <damon@ximian.com> + + * pcs/cal-backend-file.c (cal_backend_file_update_objects): when + iterating over the subcomponents, use 'subcomp' rather than 'icalcomp'. + That meant it wasn't working at all well when an entire VCALENDAR + was passed in. + + * cal-util/cal-component.c: handle DURATION property used instead of + DTEND or DUE. In cal_component_get_dtend/due we will return DTSTART + + DURATION if necessary. In set_dtend/due we remove any DURATION + property. Fixes bug #11262. + + * gui/e-meeting-model.c (build_etable): + * gui/e-calendar-table.c (e_calendar_table_init): use U_ for the + ECellCombo popdown strings, as it expects UTF-8 strings. + +2001-10-24 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_construct): + track the spacer vbox + (e_meeting_time_selector_style_set): make sure the rows are the + correct size for the style + + * gui/e-meeting-time-sel-item.c + (e_meeting_time_selector_item_paint_day_top): slight adjustments + to where the text is drawn + + * gui/e-meeting-time-sel.h: new member + + * gui/e-meeting-model.c (build_etable): ensure uniform row height + + * conduits/todo/todo-conduit.c (comp_from_remote_record): mark + status as completed in appropriate places and don't overwrite + legitimate percentages and such + +2001-10-24 Federico Mena Quintero <federico@ximian.com> + + Fixes bug #5282. + + * cal-util/timeutil.c (icaltimetype_to_tm_with_zone): New function + to avoid copying the same code all over the place. + (icaltimetype_to_tm): Also set the tm.tm_wday. + + * gui/alarm-notify/alarm-queue.c (queue_midnight_refresh): Use + time_day_end_with_zone(). + (load_alarms_for_today): Likewise. And oops, we were only + computing the times and not loading the alarms. + (obj_updated_cb): Likewise. + (load_alarms): Removed assertion that is no longer valid because + we may load the alarms for a client in two stages. + + * gui/dialogs/alarm-page.c (get_alarm_string): Convert absolute + trigger times to the local timezone. + + * gui/alarm-notify/alarm-notify-dialog.c (write_html_heading): + Convert the times to the local timezone. + (alarm_notify_dialog): Likewise, for the window title. + (alarm_notify_dialog): Set the window layer to WIN_LAYER_ONTOP. + + * gui/e-cell-date-edit-text.c (ecd_get_text): Use + icaltimetype_to_tm_with_zone(). + + * gui/alarm-notify/save.c (get_config_db): Made public. + (discard_config_db): Made public. + + * gui/alarm-notify/config-data.[ch]: New files with functions to + fetch the calendar configuration data used by the alarm daemon. + +2001-10-23 Damon Chaplin <damon@ximian.com> + + * cal-util/cal-component.c (cal_component_event_dates_match): make sure + we free all the CalComponentDateTime's when we are finished. + + * gui/gnome-cal.c (gnome_calendar_notify_dates_shown_changed): just + return if no time range is set. + +2001-10-23 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_table_vadjustment_changed): adjust the + display canvas when the table scrolls + (e_meeting_time_selector_construct): listen for table scrolling + +2001-10-23 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-model.c (build_etable): no longer set the + scrollbar policy here + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_update_main_canvas_scroll_region): add an + extra row to the height so the click to add row can be properly + seen + (e_meeting_time_selector_construct): set the scrollbar policy for + the etable scrolled + +2001-10-23 JP Rosevear <jpr@ximian.com> + + * cal-util/timeutil.c (icaltimetype_to_tm): convert an + icaltimetype to a tm + (tm_to_icaltimetype): vice versa + + * cal-util/timeutil.h: new protos + + * conduits/calendar/calendar-conduit.c: replace all mktime and + localtime calls (except for debugging calls) + + * conduits/todo/todo-conduit.c: ditto + (comp_from_remote_record): make sure the completed time is in UTC + +2001-10-23 Rodrigo Moya <rodrigo@ximian.com> + + * cal-client/cal-query.c (cal_query_construct) set priv->corba_query + to CORBA_OBJECT_NIL if there was an error + +2001-10-22 Damon Chaplin <damon@ximian.com> + + * idl/evolution-calendar.idl: added setDefaultTimezone() method. + + * pcs/cal-backend.c (cal_backend_get_default_timezone): + (cal_backend_set_default_timezone): new functions to call class + methods. + + * pcs/cal-backend-file.c: lots of changes to handle the default + timezone and use it. + + * pcs/query.c: use the default timezone. + + * gui/dialogs/task-details-page.c (date_changed_cb): initialized + completed_tt. + + * gui/dialogs/event-page.c: changed it to handle DATE values. The + 'All Day Event' checkbox is only set now when the DTSTART and DTEND + are DATE values. + + * gui/dialogs/comp-editor-util.c (comp_editor_free_dates): free the + CalComponentDateTime structs as well. + + * gui/e-tasks.c: set the default timezone on the server. + + * gui/tag-calendar.c: + * gui/gnome-cal.c: + * gui/e-week-view.c: + * gui/e-day-view.c: updates to handle DATE values. + + * gui/e-calendar-table.c (date_compare_cb): updated to use the new + ECellDateEditValue values, so it now works. + (percent_compare_cb): updated to use GPOINTER_TO_INT values. + (e_calendar_table_init): use an ECellPercent for the percent field + and an ECellDateEditText for the date fields. + + * gui/comp-util.c (cal_comp_util_compare_event_timezones): return TRUE + if the DTSTART or DTEND is a DATE value. We don't want to show the + timezone icons for DATE values. + + * gui/comp-editor-factory.c (resolve_pending_requests): set the default + timezone on the server. + + * gui/calendar-model.c: major changes to support sorting properly. + For date and percent fields we now use subclasses of ECellText, so + we don't use a char* as the model value. For the percent field we now + use a GINT_TO_POINTER. For the date fields we now use a + ECellDateEditValue* as the value. + + * gui/calendar-config.c (calendar_config_configure_e_cell_date_edit): + set the timezone and use_24_hour flags of the new ECellDateEditText. + + * conduits/todo/todo-conduit.c (pre_sync): + * conduits/calendar/calendar-conduit.c (pre_sync): set the default + timezone on the server. + + * cal-util/timeutil.c (time_days_in_month): removed debug message. + + * cal-util/test-recur.c: try to handle timezones in the iCalendar + file properly, and updated to pass default timezone. + + * cal-util/cal-util.c (cal_util_generate_alarms_for_comp): + (cal_util_generate_alarms_for_list): added default timezone argument. + + * cal-util/cal-recur.c: changed many of the functions to take a default + timezone, to use to resolve DATE and floating DATE-TIME values. + + * cal-client/cal-client.c (cal_client_set_default_timezone): new + function to set the default timezone. + (cal_client_ensure_timezone_on_server): new function to ensure that + a given timezone is on the server. + + * gui/e-cell-date-edit-text.c: new subclass of ECellText to display + and edit a date value. + + * cal-util/cal-recur.c (cal_obj_byday_expand_monthly): changed week_num + to -week_num when calculating the weeks to go back from the end of the + month for things like BYDAY=-2WE. Fixes bug #11525. + (cal_recur_generate_instances_of_rule): only go up to MAX_YEAR (2037). + We can't really handle anything past that anyway. + (cal_recur_ensure_rule_end_date): initialize cb_date.end_date to 0, + so if the RULE doesn't generate COUNT instances we save 0 as the + time_t. + +2001-10-22 Federico Mena Quintero <federico@ximian.com> + + * gui/tasks-control-factory.c (tasks_control_factory_fn): Put up a + warning dialog box if we failed to create the tasks control. + Fixes bug #13033. + +2001-10-22 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (set_date_label): write out the correct + time in the control + + * pcs/cal.c (build_fb_seq): utility function to build sequences of + f/b data + (impl_Cal_get_free_busy): use above so we never return a NULL + + * conduits/calendar/calendar-conduit-config.h + (calconduit_save_configuration): fix c/p error + (calconduit_load_configuration): ditto + +2001-10-22 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/meeting-page.c (meeting_page_destroy): we don't need + to save the state + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_destroy): + ditto + + * gui/e-meeting-model.c (build_etable): listen for the etable + being destroyed + (table_destroy_cb): save the state when the etable is destroyed + +2001-10-21 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/schedule-page.c (init_widgets): listen for changes + in the date editors + (schedule_page_set_dates): update the times when they change + elsewhere + (update_time): set the time in the dialog + (time_changed_cb): notify of changed times + + * gui/dialogs/comp-editor.c (page_dates_changed_cb): don't call + the set dates function on the page that noted the change + (page_summary_changed_cb): same for set summary function + + * gui/dialogs/event-page.c (update_time): move time setting stuff + to util function + (event_page_set_dates): use it + (event_page_fill_component): ditto + + * gui/e-meeting-time-sel.h: fix comment + +2001-10-19 Federico Mena Quintero <federico@ximian.com> + + * gui/alarm-notify/alarm-notify.c (add_uri_to_load): Do not assert + if we fail to load the URI list. This would of course have been a + bonobo-conf activation problem. + (remove_uri_to_load): Likewise. + + * gui/alarm-notify/notify-main.c (load_calendars): Likewise. + + * gui/alarm-notify/alarm-queue.c (load_missed_alarms): Make the + time range half-open so that we do not display the last alarm + twice. + +2001-10-19 Rodrigo Moya <rodrigo@ximian.com> + + * gui/calendar-model.c (calendar_model_set_status_message): make + it a public function + + * gui/e-tasks.c (e_tasks_open): display progress messages + (cal_opened_cb): clean up status bar messages + + * gui/gnome-cal.c (gnome_calendar_open): display progress messages + (client_cal_opened_cb): clean up status bar messages + +2001-10-19 Rodrigo Moya <rodrigo@ximian.com> + + * gui/calendar-model.c (set_status_message): new function + (update_query): call set_status_message + (query_query_done_cb): + (query_eval_error_cb): clean up status bar messages + (get_location, set_location): new functions for setting and + retrieving the location in the calendar model + +2001-10-19 Rodrigo Moya <rodrigo@ximian.com> + + * gui/component-factory.c (owner_set_cb): keep a reference to the + EvolutionShellClient component + + * gui/e-week-view.c (e_week_view_set_status_message): new function + (update_query): call e_week_view_set_status_message + (query_query_done_cb): + (query_eval_error_cb): clean up status bar messages + + * gui/e-day-view.c (e_day_view_set_status_message): new function + (update_query): call e_day_view_set_status_message + (query_query_done_cb): + (query_eval_error_cb): clean up status bar messages + + * gui/Makefile.am: added EVOLUTION_IMAGESDIR to CFLAGS + +2001-10-18 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_on_invite_others_button_clicked): call + the invite others dialog in the model + + * gui/e-meeting-attendee.c (e_meeting_attendee_get_atype): pick + attendee type based on role and cutype + + * gui/e-meeting-attendee.h: remove proto + + * gui/Makefile.am: compile select names idl + + * gui/e-meeting-model.h: new proto + + * gui/dialogs/meeting-page.c: remove invite others dialogs bits + from here + + * gui/e-meeting-model.c (e_meeting_model_invite_others_dialog): + and put them here + + * gui/dialogs/Makefile.am: compile corba bits in parent dir + + * gui/dialogs/comp-editor-util.h: reflect above in includes + + * gui/dialogs/e-delegate-dialog.c: ditto + + * gui/dialogs/schedule-page.c: ditto and clean includes + +2001-10-18 Larry Ewing <lewing@ximian.com> + + * gui/alarm-notify/alarm-notify-dialog.c: add html widget + (url_requested_cb): add function to load images from file as they + are requested. + (write_html_heading): convert to using html. + (alarm_notify_dialog): convert to use html display. + (make_html_display): this is the function the custom widget in the + galde file uses to create the html widget. + + * gui/alarm-notify/alarm-notify.glade: add placeholder for the + custom html widget. + + * gui/alarm-notify/Makefile.am: add flags for gtkhtml and gal. + +2001-10-18 Federico Mena Quintero <federico@ximian.com> + + Adds session management for the alarm daemon. Also makes it store + a list of calendars to be monitored. Those calendars will all be + loaded when the alarm daemon starts up. + + * idl/evolution-calendar.idl (AlarmNotify): Removed the ::die() + method. The alarm daemon now handles termination via the session + manager's commands. + + * gui/alarm-notify/notify-main.c (set_session_parameters): New + function, sets some parameters so that the session manager can + restart the daemon via the evolution-alarm-client program. Also, + sets up the "die" signal so that the daemon can terminate when the + session ends. + (load_calendars): New function to load the calendars on startup. + (main): Set the session parameters. Load the calendars on startup. + + * gui/alarm-notify/alarm-notify.c (alarm_notify_add_calendar): New + function, moved over from the impl_ function. Added a + load_afterwards argument to indicate whether the calendar should + just be loaded or if it should also be added to the list of + calendars to load on startup. + (AlarmNotify_addCalendar): Use alarm_notify_add_calendar(). + (AlarmNotify_removeCalendar): Remove the calendar from the list of + calendars to load on startup. + + * gui/alarm-notify/save.c (save_calendars_to_load): New function, + saves a sequence of the URIs to load. + (get_calendars_to_load): New function, loads a sequence of + calendars to load. + + * gui/alarm-notify/alarm.h: Removed stale prototype for alarm_init(). + + * gui/component-factory.c (remove_folder): Ask the alarm daemon to + stop monitoring alarms for the folder that is being deleted. + +2001-10-18 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-time-sel.c + + * gui/e-meeting-time-sel-item.c + (e_meeting_time_selector_item_paint_day_top): use 12 or 24 hour + settings + + * gui/e-meeting-time-sel.c: strings for 12 hour setting + (e_meeting_time_selector_construct): increase width slightly + + * gui/e-meeting-time-sel.h: extern the new char array + +2001-10-18 Rodrigo Moya <rodrigo@ximian.com> + + * cal-util/cal-component.[ch] (cal_component_get_location): + (cal_component_set_location): new functions + +2001-10-18 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-model.c (process_callbacks): util routine to + handle calling back + (async_close): use above + (e_meeting_model_refresh_busy_periods): ditto + +2001-10-17 JP Rosevear <jpr@ximian.com> + + * conduits/todo/todo-conduit.c (local_record_from_comp): translate + 1-5 priorites to 1-9 priorities better + (comp_from_remote_record): ditto + +2001-10-17 JP Rosevear <jpr@ximian.com> + + * idl/evolution-calendar.idl: allow some decent exceptions + +2001-10-17 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/query.c (match_component): there may be cases when the backend + will return an invalid component from a valid UID (an UID returned + by the get_uids method), so don't abort if that's the case + +2001-10-15 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/cal-prefs-dialog.glade: removed Help button. Do we have + any others? + +2001-10-15 Larry Ewing <lewing@ximian.com> + + * gui/dialogs/comp-editor.c (set_icon_from_comp): remove warnings. + +2001-10-15 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (process_multi_day): + function to break up multi day events into single events for both + evo and the pilot and create new CalClientChange structures + (pre_sync): call above function, and adjust changed list if + necessary + +2001-10-15 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (is_all_day): util function + to determine if event is all day + (local_record_from_comp): use new util function + (comp_from_remote_record): kill use of deprecated time functions + +2001-10-13 Larry Ewing <lewing@ximian.com> + + * gui/dialogs/comp-editor.c (real_edit_comp): call + set_icon_from_comp. + (set_icon_from_comp): set the window icon from the comp. + (make_icon_from_comp): get the icon path based on comp type. + + * gui/dialogs/Makefile.am (iconsdir): EVOLUTION_ICONSDIR bits. + +2001-10-13 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/task-editor.c (task_editor_send_comp): send + cancellation comp if necessary + +2001-10-12 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/alarm-page.c: return fill_component success + + * gui/dialogs/task-page.c: ditto + + * gui/dialogs/task-details-page.c: ditto + + * gui/dialogs/schedule-page.c: ditto + + * gui/dialogs/recurrence-page.c: ditto + + * gui/dialogs/event-page.c: ditto + + * gui/dialogs/meeting-page.c: use e_notice instead of + duplicate_error + (meeting_page_get_cancel_comp): duh, deleted_attendees is an array + now + (meeting_page_fill_component): spew gui errors if there is no + organizer or no attendees, return success + + * gui/dialogs/event-editor.c (event_editor_send_comp): always call + parent method and don't send the cancellation comp if the method + is publish + (refresh_meeting_cmd): use the orginal comp to refresh + (forward_cmd): prompt the user for the version they want to send + (current, original) + + * gui/dialogs/task-editor.c (forward_cmd): as above + (refresh_task_cmd): ditto + + * gui/dialogs/comp-editor-page.c + (comp_editor_page_fill_component): return boolean of whether the + component could be filled or not + + * gui/dialogs/comp-editor-page.h: update proto + + * gui/dialogs/comp-editor.c (prompt_to_save_changes): take a param + on whether to try and send or not + (comp_editor_get_current_comp): only fill component if its changed + (comp_editor_save_comp): prompt user as well + + * gui/dialogs/comp-editor.h: change proto + + * gui/itip-utils.c: replace error_dialog with e_notice + (comp_content_type): specify charset + +2001-10-11 Larry Ewing <lewing@ximian.com> + + * gui/e-itip-control.c: large reworking of i18n tagging and now + uses gtk_html_stream write and U_ where appropriate. More to + come. + +2001-10-10 Larry Ewing <lewing@ximian.com> + + * gui/e-itip-control.c (init): set the default character set to + utf-8. + +2001-10-10 Federico Mena Quintero <federico@ximian.com> + + * pcs/cal-factory.c (lookup_backend): Return the original key in + the hash table if requested. + (backend_last_client_gone_cb): Use lookup_backend() so that we + have the URI mangling done for us. + (impl_CalFactory_open): The type should be GtkType *, not GtkType! + +2001-10-10 JP Rosevear <jpr@ximian.com> + + * cal-client/cal-client.c (cal_set_mode_cb): remove unneeded + assertions + +2001-10-10 JP Rosevear <jpr@ximian.com> + + * pcs/cal-factory.c (add_uri): fix logic checks + + * gui/dialogs/event-editor.c (event_editor_init): init the + exisiting_org boolean + (set_menu_sens): base sensitivity on existing_org boolean + (event_editor_edit_comp): set exisiting_org boolean + + * gui/dialogs/task-editor.c: same as above + + * gui/calendar-offline-handler.c (add_connection): handle the + protocol or host being unknown + + * cal-util/cal-component.c (cal_component_has_organizer): + implement + +2001-10-09 Federico Mena Quintero <federico@ximian.com> + + Fixes bug #884. + + * gui/alarm-notify/save.[ch]: New files with functions to + save/load the last notification time. + + * gui/alarm-notify/alarm-queue.c (alarm_trigger_cb): Save the last + notification time. + (alarm_queue_init): Load the last notification time when the + daemon is inited. + (alarm_queue_add_client): Load the alarms that we missed while the + alarm daemon was not running. + (cal_opened_cb): Likewise. + + * gui/alarm-notify/Makefile.am (evolution_alarm_notify_SOURCES): + Added save.[ch] to the list of sources. + +2001-10-09 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (get_address): util function to get address + (itip_addresses_get_default): get only the default address + (itip_address_free): free single address + (itip_addresses_free): use above + (comp_limit_attendees): limit the number of attendees to one, the + user + (comp_sentby): set the sentby parameter if the user is not the + organizer + (comp_minimal): remove extraneous info for send (for refresh and + declinecounter) + (comp_compliant): remove all alarms, do various things to make the + components comply with itip spec based on method + (itip_send_comp): use comp_compliant method + + * gui/itip-utils.h: new protos + + * gui/e-itip-control.c: rescan the component when necessary + (get_next): don't get stuck in infinite loop if there are no + viewable components + (e_itip_control_set_data): if there are no viewable components, + spit an error message + + * gui/dialogs/meeting-page.h: tidy + + * gui/dialogs/meeting-page.c (meeting_page_fill_widgets): use + organizer's cn if possible + (other_clicked_cb): no longer doing the sent by stuff directly, + hide more widgets + + * pcs/query.c: use bonobo exception stuff + + * cal-util/cal-component.c (cal_component_rescan): have the comp + rescan its libical component (for when you change things directly) + (free_icalcomponent): take a param on whether to free the + component or just clean up the mappings + (cal_component_has_attendees): util function + + * cal-util/cal-component.h: new protos + +2001-10-09 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-factory.c (lookup_backend, add_backend): deal correctly with + URIs to be inserted into the hash table, so that we don't add the same + backend over and over because the URI strings were different (although + refering to the same backend) + + * pcs/cal-backend-file.c (mail_account_*): moved to a common place + (cal_backend_file_open): check if "uristr != NULL" and not + "uri != NULL" + + * pcs/cal-backend-util.c: moved to here + + * gui/e-day-view.c: add missing header file + +2001-10-09 Dan Winship <danw@ximian.com> + + * gui/e-meeting-model.c (process_free_busy_comp): Fix incorrect + variable name check. + +2001-10-03 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (itip_send_comp): refactor functionality into + several function + (comp_string): if we are publishing, empty the attendee list + + * gui/dialogs/event-editor.c (schedule_meeting_cmd): when we + schedule a new meeting, mark the event editor as changed + + * pcs/cal.c (cal_class_init): get correct parent class + + * gui/dialogs/comp-editor.c (comp_editor_merge_ui): use the + generated ui component name + +2001-10-03 Rodrigo Moya <rodrigo@ximian.com> + + * gui/component-factory.c: + * gui/calendar-offline-handler.c: + * gui/comp-editor-factory.c: replace use of gnome_vfs_uri with e_uri + + * gui/e-meeting-model.c (start_addressbook_server): make it return void, + since the return value does not mind + + * pcs/cal.c: + * pcs/cal-factory.c: + * pcs/cal-backend.[ch]: don't use GnomeVFS for URI management + + * pcs/cal-backend-file.c: ditto, only use GnomeVFS for internal + operations + + * cal-client/cal-client.c (cal_client_open_calendar): don't CORBA_exception_free + before checking for exceptions + +2001-10-03 Christopher James Lahey <clahey@ximian.com> + + * gui/e-calendar-table.etspec: Added priorities to a bunch of + these columns. Fixes Ximian bug #7158. + +2001-10-03 Damon Chaplin <damon@ximian.com> + + * gui/comp-util.c (cal_comp_util_add_exdate): save the EXDATE as a + DATE-TIME value, since we know the exact time. Fixes bug #11278. + (Before we were setting is_date, but icaltime_from_timet_with_zone() + didn't convert it properly. We need to figure out how to handle DATEs + when using time_t's.) + + * gui/dialogs/recurrence-page.c (get_exception_string): use + e_time_format_date_and_time() so we show the time as well, if the + exception is a DATE-TIME value. + + * cal-util/timeutil.c: removed time_add_month(), time_year_begin(), + time_month_begin() & time_week_begin() - old pre-timezone functions + which we no longer use. + + * cal-util/cal-recur.c (cal_recur_from_icalproperty): set + ir.until.is_date to FALSE before converting to a time_t. + Hopefully fixes bug #5034. + +2001-10-02 Ettore Perazzoli <ettore@ximian.com> + + * gui/dialogs/comp-editor.c (setup_widgets): Use + `bonobo_ui_component_new_default()', not + `bonobo_ui_component_new()'. + +2001-10-02 JP Rosevear <jpr@ximian.com> + + * cal-client/cal-query.c: use bonobo-exception to tidy + +2001-10-02 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (nth_weekday): handle -1 as + well + (comp_from_remote_record): fix monthly by day recurrences and + handle "last" day type + +2001-10-01 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/comp-editor.c (comp_editor_destroy): unref the page + objects here, instead of in close_dialog(). (This was fixed a while + ago, but accidentally reverted.) Fixes bug #7543. + +2001-10-01 Federico Mena Quintero <federico@ximian.com> + + * gui/alarm-notify/alarm-notify-dialog.c (alarm_notify_dialog): + Set the window state to sticky. Thanks to Peter Teichman for the + suggestion. + +2001-10-01 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (local_record_from_comp): + Convert the comp exceptions to the pilot record + (comp_from_remote_record): record exceptions on the desktop and + use time zone stuff on recurrence end date + +2001-10-01 JP Rosevear <jpr@ximian.com> + + * pcs/cal-backend-file.c (cal_backend_file_compute_changes): + strdup the uid to avoid double free, write out only after + everything is done + +2001-10-01 Rodrigo Moya <rodrigo@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_open): don't use + gnome_vfs_uri_is_local on URIs created with + gnome_vfs_uri_new_private + +2001-09-28 Damon Chaplin <damon@ximian.com> + + * gui/print.c (print_comp_item): use bound_text to print the summary, + so it wraps instead of being clipped to 1 line. Fixes part 3 of bug + #10285, I think. + + * gui/dialogs/alarm-page.glade: left-aligned the Date/Time label. + Also set the width of the Summary & Date/Time labels to 10, and set + expand to TRUE, to make sure that the dialog doesn't keep getting + wider as the summary text on the main page gets longer. Could possibly + use an EClippedLabel here instead, so we get a '...' at the end if it + is clipped. + + * gui/dialogs/recurrence-page.glade: changed Summary & Date/Time + widths as above. + + * gui/print.c (print_calendar): use landscape mode for the month + preview. + (print_border_with_triangles): use EPSILON to account for floating + point errors. Hopefully fixes part 2b of bug #10285. + +2001-09-28 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (local_record_from_comp): + Handle the fields and category we don't sync by making sure we + don't overwrite them + (local_record_to_pilot_record): use local record category + (pre_sync): track db info + + * conduits/calendar/calendar-conduit.h: db info field + + * conduits/todo/todo-conduit.[hc]: same as above + + * pcs/cal-backend-file.c + (cal_backend_file_compute_changes_foreach_key): create a dummy + component of the right type and strdup the uid + (cal_backend_file_compute_changes): sync the db hash after each + change and free the uid + +2001-09-28 JP Rosevear <jpr@ximian.com> + + * cal-client/cal-client.c (cal_client_open_calendar): init the + execption rather than freeing it + +2001-09-28 Rodrigo Moya <rodrigo@ximian.com> + + * cal-client/cal-client.c (cal_client_construct): use bonobo-exception + for exceptions + (cal_client_open_calendar): likewise + +2001-09-27 Ettore Perazzoli <ettore@ximian.com> + + * gui/calendar-commands.c (pixmaps): Update pixmap menu paths; + /menu/ComponentToolsPlaceholder/Tools -> + /menu/Tools/ComponentPlaceholder . + * gui/tasks-control.c: Likewise. + +2001-09-27 Rodrigo Moya <rodrigo@ximian.com> + + * idl/evolution-calendar.idl: added InvalidURI and UnsupportedMethod + exceptions to the CalFactory interface + + * pcs/cal-factory.c (impl_CalFactory_open): raise InvalidURI exception on + URI errors and UnsupportedMethod when we don't support the method for + a given URI + +2001-09-26 Rodrigo Moya <rodrigo@ximian.com> + + * cal-client/cal-client.c: added support for using multiple calendar + factories + (cal_client_uri_list): use the list of factories loaded for this + CalClient + +2001-09-26 Damon Chaplin <damon@ximian.com> + + * gui/e-calendar-table.c (date_compare_cb): + (percent_compare_cb): + (priority_compare_cb): added comparison functions for these special + cell types. But the date and percent ones don't work yet due to the + use of static text buffers for return cell values. + (e_calendar_table_init): added the comparison functions to the + ETableExtras. NOTE: task_compare_cb() never seems to be called. + I'm not sure why it is there. + + * gui/e-calendar-table.etspec: set the comparison function names for + the date/percent/priority fields. + + * cal-util/cal-util.c (cal_util_priority_to_string): + (cal_util_priority_from_string): new utility functions. + + * gui/calendar-model.c (get_priority): + (set_priority): used above utility functions, and removed the warning + dialog which isn't useful now that the field isn't editable. + + * gui/dialogs/event-page.c (times_updated): handle timezones and for + all-day events make sure it stays an all-day event after adjusting. + Fixes bugs #5945 and #10222. + + * gui/calendar-commands.c (pixmaps): fixed the E_PIXMAP paths - the + edit items were moved beneath 'EditPlaceholder'. This gets rid of + those long Bonobo warnings! (and we get the icons back) + + * gui/dialogs/comp-editor.c (pixmaps): removed the PrintPreview toolbar + icon, since it doesn't appear in the xml file. Gets rid of warning. + + * gui/dialogs/event-page.c (notify_dates_changed): new function to + emit the notification signal when the dates are changed. It also + handles timezones now. + + * gui/dialogs/comp-editor-page.h (CompEditorPageDates): used + CalComponentDateTime for start/end/due so we have the timezone as well + as the time. + + * gui/dialogs/comp-editor-util.c (comp_editor_dates): updated to get + the timezones as well as the times. + (comp_editor_free_dates): new function needed to free all the structs. + + * gui/dialogs/recurrence-page.c (recurrence_page_set_dates): added call + to preview_recur() to make sure the preview gets updated. + + * gui/dialogs/alarm-page.c (alarm_page_fill_widgets): free the + CompEditorPageDates struct after use. + + * gui/tag-calendar.c (tag_calendar_by_comp): added 'comp_is_on_server' + argument. If FALSE, we try to use builtin timezones first. This is + needed for the recurrence page of the event editor, because the + timezones may not have been added to the server yet. This and the + changes to the notification stuff should fix bug #5034. + + * gui/gnome-cal.c (dn_query_obj_updated_cb): call above + tag_calendar_by_comp() with TRUE since the events will be on the + server in this case. + + * gui/e-day-view-layout.c: + * gui/e-day-view.c: made sure an event always takes up at least one + row, even when the start & end times are the same. Fixes bug #5944. + I don't know if we should try to also handle events with the end time + before the start time. + + * gui/e-week-view.c (e_week_view_style_set): check that the small font + is actually smaller than the normal font. If it isn't, don't use it. + Hopefully fixes bug #6876. + (e_week_view_on_new_appointment): if only one day is selected, then + we set the initial time of the event to 1/2-hour from the start of the + working day, to differentiate 'New Appointment' from 'New All Day + Event'. Fixes bug #8892. + + * gui/e-day-view.c (e_day_view_on_new_appointment): do the same as the + above. + +2001-09-26 Federico Mena Quintero <federico@ximian.com> + + Fixes the GUI part of bug #7892. + + * gui/dialogs/alarm-page.c (get_alarm_duration_string): Return + NULL if the duration is zero. + (get_alarm_string): Handle duration of zero. Also, hopefully + make the strings be more l10n-friendly. + + * gui/alarm-notify/alarm.c (alarm_ready_cb): I am a moron. Fix + reversed test. + +2001-09-26 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/comp-editor.c (comp_editor_destroy): disconnect + signals first thing + +2001-09-26 Dan Winship <danw@ximian.com> + + * gui/Makefile.am (evolution_calendar_LDFLAGS): Add + -export-dynamic to make glade custom widgets work on non-Linux. + +2001-09-26 Rodrigo Moya <rodrigo@ximian.com> + + * cal-util/cal-util.h: added CAL_MODE_INVALID to CalMode enum + +2001-09-26 JP Rosevear <jpr@ximian.com> + + * pcs/cal.h: new proto + + * pcs/cal.c (impl_Cal_set_mode): implement set mode method + (cal_class_init): set setMode function in epv + (cal_notify_mode): notify listener of mode change + + * pcs/cal-factory.c (add_uri): deal with UriType renaming + + * pcs/cal-backend.h: add new virtual methods and protos + + * pcs/cal-backend.c (cal_backend_class_init): init new virtual + methods to null + (cal_backend_set_mode): sets mode + (cal_backend_get_mode): gets mode + + * pcs/cal-backend-file.c (cal_backend_file_class_init): overide + get_mode and set_mode methods + (cal_backend_file_get_mode): return mode + (notify_mode): have listeners notified of the set mode call + (cal_backend_file_set_mode): set the mode by indicating not + supported + + * cal-client/cal-listener.h: update proto + + * cal-client/cal-listener.c (impl_notifyCalSetMode): implement set + mode callback + (cal_listener_construct): take set mode callback + (cal_listener_new): ditto + + * cal-client/cal-client.h: update protos, add signal proto + + * cal-client/cal-client.c (cal_client_class_init): add + cal_set_mode signal + (cal_set_mode_cb): handle set mode callback from listener + (cal_client_open_calendar): pass additional param to cal_listener_new + (cal_client_set_mode): wrapper to set the calendar mode + + * idl/evolution-calendar.idl: make UriType into CalMode, add + SetModeStatus enum and notifyCalSetMode method to the listener + + * gui/calendar-offline-handler.c (create_connection_list): fetch + the uri list ourselves + (impl_prepareForOffline): reflect param change of + create_connect_list + (update_offline): ditto + (backend_cal_set_mode): set mode call back + (backend_cal_opened): cal opened call back, set mode to local + (impl_goOffline): reflect UriType renaming + + * cal-util/cal-util.h: rename UriType to CalMode + +2001-09-25 Federico Mena Quintero <federico@ximian.com> + + Warning fixes courtesy of Chris Lahey <clahey@ximian.com>. + + * gui/e-itip-control.c (write_html): Warning fixes. Also, don't + strdup() more than necessary. + + * gui/e-meeting-time-sel.c (e_meeting_time_selector_refresh_cb): + Warning fixes. + + * gui/itip-utils.c (itip_addresses_get): Warning fixes. + + * gui/print.c (print_day_background): Warning fixes. + + * gui/dialogs/alarm-options.c (alarm_to_aalarm_widgets): Warning + fixes. + (alarm_to_palarm_widgets): Likewise. + + * gui/dialogs/delete-comp.c: #include "../calendar-config.h" + +2001-09-25 Federico Mena Quintero <federico@ximian.com> + + * gui/alarm-notify/alarm.c (alarm_ready_cb): Check that the + timeout is not set up before we create a new one; the alarm_fn + callback may cause the alarm system to re-enter and add a new + alarm. Fixes bug #10840. + (pop_alarm): Assert that there is at least one alarm in the queue. + +2001-09-25 JP Rosevear <jpr@ximian.com> + + * pcs/cal.c: use bonobo-exception stuff to clean code + + * pcs/cal-factory.c (add_uri): add uri to the list if the type + matches + (impl_CalFactory_uriList): implement uriList method + + * pcs/cal-backend.h: new virtual function member + + * pcs/cal-backend.c (cal_backend_is_remote): call virtual function + + * pcs/cal-backend-file.c (cal_backend_file_class_init): override + virtual function + (cal_backend_file_is_remote): new virtual function, always return + FALSE + + * idl/evolution-calendar.idl: uriList factory call, with flags for + types to get + + * gui/dialogs/comp-editor.c (comp_editor_destroy): cast to remove + warning + + * gui/e-itip-control.c (write_label_piece): kill warnings by take + const char * + + * gui/component-factory.c (create_object): aggregate offline + interface + + * gui/Makefile.am: compile new files + + * calobj.[hc]: Remove obsolete files + + * cal-util/cal-util.h: enum URI types for uriList call + + * cal-client/cal-client.c (build_uri_list): build list from string + sequence + (cal_client_uri_list): factory call to get uri list + + * cal-client/cal-client.h: new proto + + * cal-client/cal-client.c: use bonobo exception stuff to clean + code + + * gui/calendar-offline-handler.[hc]: Start some skeleton routines + for online/offline handling + + * pcs/cal-factory.c (launch_backend_for_uri): use accessor and + remove FIXME + +2001-09-23 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (set_date_label): base text on component + type + +2001-09-20 Rodrigo Moya <rodrigo@ximian.com> + + * gui/component-factory.c: don't use gnome_vfs_uri_new_private + (fixes Ximian #10544) + +2001-09-20 Federico Mena Quintero <federico@ximian.com> + + * gui/component-factory.c: #include a few files we were missing + from libgnomevfs. + +2001-09-20 JP Rosevear <jpr@ximian.com> + + * pcs/cal-backend-file.c (load_db): gets a config db + (cal_backend_file_destroy): release config db + (cal_backend_file_init): use load_db + (mail_account_get): gets a mail account by number + (mail_account_get_default): gets the default mail account + (mail_account_is_valid): looks to see if any accounts have the + given address + (create_user_free_busy): modularize so we can call multiple times + if necessary, set organizer + (cal_backend_file_get_free_busy): if the list of users is null, + use the default account otherwise get the same info for each + address that is an identity in the mailer + + * gui/itip-utils.c (itip_addresses_get): s/gint/glong/ for bonobo + conf returns + + * gui/calendar-commands.c (publish_freebusy_cmd): fix problems + from a merge so that we publish 6 weeks of free/busy information + again + +2001-09-20 Larry Ewing <lewing@ximian.com> + + * gui/dialogs/recurrence-page.c (recurrence_page_destroy): make + sure to release the ref on priv->comp. + + * gui/dialogs/comp-editor.c (real_edit_comp): make sure to release + the ref on priv->comp. + +2001-09-19 Federico Mena Quintero <federico@ximian.com> + + * gui/alarm-notify/alarm-queue.c (audio_notification): Display a + notification message always, in addition to playing the sound. + (procedure_notification): Present a confirmation dialog before + actually running the alarm's program. + (procedure_notification): Use gnome_execute_shell() instead of + gnome_execute_async() so that we handle multiple arguments + properly. Plus, it is most likely what the user expects. + (mail_notification): Display a message about unsupported email + reminders instead of blindly dropping the alarm. + + * gui/dialogs/alarm-options.glade: Added an explanatory message + about mail alarms not being supported. + + * gui/dialogs/alarm-page.glade: Removed the "Send an email" + option. + + * gui/dialogs/alarm-page.c (action_map): Removed CAL_ALARM_EMAIL. + +2001-09-19 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/task-editor.c (init_widgets): listen for model + changes + (task_editor_edit_comp): add the attendees to the model and notify + of need send + (row_count_changed_cb): mark as changed when row added/deleted + (model_row_changed_cb): mark as changed when row changes + + * gui/dialogs/event-editor.c (init_widgets): listen for model + changes + (event_editor_init): flip page order + (event_editor_edit_comp): set needs send value + (schedule_meeting_cmd): flip page order + (row_count_changed_cb): mark as changed when row added/deleted + (model_row_changed_cb): mark as changed when row changes + + * gui/dialogs/schedule-page.c: remove model change notification + stuff + (schedule_page_fill_widgets): no need to do the needs_send here + because the editor handles this since it owns the model + + * gui/dialogs/event-editor.c (init_widgets): listen for model + changes + (event_editor_init): flip page order + (event_editor_edit_comp): set needs send value + (schedule_meeting_cmd): flip page order + (row_count_changed_cb): mark as changed when row added/deleted + (model_row_changed_cb): mark as changed when row changes + + * gui/dialogs/meeting-page.c (meeting_page_fill_widgets): no need + to do the needs_send here because the editor handles this since it + owns the model + (invite_entry_changed): ditto + + * gui/dialogs/comp-editor.c (comp_editor_set_changed): new + accessor + (comp_editor_get_changed): ditto + (comp_editor_set_needs_send): ditto + (comp_editor_get_needs_send): ditto + + * gui/dialogs/comp-editor.h: new protos + + * gui/itip-utils.c (itip_addresses_get): reflect configuration + path changes in the mailer + + * gui/e-meeting-model.c: remove commented out code, ifdef one + section for later + +2001-09-19 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-factory.c (cal_factory_oaf_register): add a new parameter + (const char *iid) to specify the OAFIID of the factory being + registered + +2001-09-19 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-model.c (e_meeting_model_refresh_busy_periods): + remove silly debug #if 0 + + * gui/calendar-commands.c (publish_freebusy_cmd): g_list_free + rather than g_free + + * gui/e-itip-control.c (write_html): eliminate code path that + caused double freed memory + +2001-09-18 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/schedule-page.*: A page that shows the meeting time + selector and free/busy data for attendees + + * gui/dialogs/meeting-page.c: use the meeting model to track/edit + attendees, remove table value conversion routines and simple table + routines + (set_attendees): take a pointer array + (meeting_page_destroy): destroy the pointer array, save state + (meeting_page_init): new pointer array + (meeting_page_fill_widgets): don't null the deleted attendees + field + (popup_delegate_cb): array add + (popup_delete_cb): array add + (cleanup_attendees): iterate over the array to unref now + (meeting_page_fill_widgets): don't null out fields, no need to add + attendees here + (invite_entry_changed): use e_meeting_attendee routines + (popup_delegate_cb): ditto + (popup_delete_cb): ditto + (meeting_page_new): take new arg and pass it to construct + (meeting_page_construct): take new arg, use e-meeting-model + routines to construct table + + * gui/dialogs/task-editor.c (task_editor_init): new meeting model + (task_editor_destroy): unref the model + + * gui/dialogs/event-editor.c (event_editor_init): make new model + and pass it to meeting and schedule pages + (event_editor_set_cal_client): virtual function, set meeting model + client + (event_editor_edit_comp): add the attendees to the model + (event_editor_destroy): unref model + + * gui/dialogs/comp-editor.h: add virtual function + * gui/dialogs/comp-editor.c (comp_editor_set_cal_client): make + set_cal_client a virutal function + + * gui/e-meeting-types.h: generally useful type defines + + * gui/e-meeting-time-sel*.[hc]: Move here and use an e-table for + the attendee list and extract display information from the new + meeting model and attendees + + * gui/e-meeting-time-sel.etspec: spec for the table + + * gui/e-meeting-attendee.[hc]: meeting attendees for the model, + with to/from conversions for CalComponentAttendee structure, emits + changed signal and allows getting and setting of free busy + periods + + * gui/e-meeting-model.[hc]: move the model out on its own + + * gui/e-itip-control.c (write_error_html): clean up warnings + +2001-09-18 Federico Mena Quintero <federico@ximian.com> + + Fixes bug #6350. + + * gui/component-factory.c (remove_folder): Use a simplified method + for removing our folder data; we just need to remove calendar.ics + or tasks.ics and the corresponding backup files. + +2001-09-18 Federico Mena Quintero <federico@ximian.com> + + Fixes bug #2830. + + * gui/calendar-config.c (calendar_config_get_confirm_delete): New + function. + (calendar_config_set_confirm_delete): New function. + (config_read): Get the default value for the ConfirmDelete option. + (calendar_config_write): Set the value of ConfirmDelete. + + * gui/dialogs/delete-comp.c (delete_component_dialog): Handle the + configuration option for confirmation. + + * gui/dialogs/cal-prefs-dialog.c (CalPrefsDialogPrivate): Added + the fields for the Other page. + (get_widgets): Handle the new widgets. + (cal_prefs_dialog_show_config): Likewise. + (cal_prefs_dialog_update_config): Likewise. + +2001-09-18 Rodrigo Moya <rodrigo@ximian.com> + + * cal-client/cal-client-multi.[ch]: new class for managing multiple + calendars, with an API very similar to the CalClient one, + for ease of transition from one to the other + + * gui/component-factory.c (xfer_folder, remove_folder, create_folder): + reworked to be able to manage folders for any calendar backend, and + not only the file: one + +2001-09-18 Rodrigo Moya <rodrigo@ximian.com> + + * idl/evolution-calendar.idl: changed signature for the getFreeBusy + method, to return a sequence of CalObj's, and added sequence of users + as a new parameter to that method + + * cal-client/cal-client.c (cal_client_get_free_busy): adapted to new + IDL method signature, by adding a new "GList *users" parameter, for + callers to be able to specify a list of users + + * pcs/cal-backend.[ch] (cal_backend_get_free_busy): + * pcs/cal-backend-file.c (cal_backend_file_get_free_busy): add the + "GList *users" parameter. In cal_backend_file_get_free_busy, call + lookup_component to get the CalComponent for each uid, instead + of calling cal_backend_get_object, which meant converting the + component to a string and then parsing it again. + + * cal-client/client-test.c (cal_opened_cb): + * gui/e-itip-control.c (send_freebusy): + * gui/calendar-commands.c (publish_freebusy_cmd): adapted to + new getFreeBusy method signature + +2001-09-17 Damon Chaplin <damon@ximian.com> + + * gui/calendar-model.c: added a timeout to refresh the list every + 10 minutes. Not ideal, as the user may be editing a task when it gets + refreshed. + (adjust_query_sexp): use the 'completed-before?' operator to filter + out tasks according to the config settings. + + * gui/dialogs/task-details-page.c (task_details_page_fill_widgets): + added support for the 'Completed' date. This code must have got lost + somewhere, as it used to work. + (date_changed_cb): set the priv->updating flag while updating the other + widgets. + + * pcs/cal-backend-file.c (cal_backend_file_update_objects): made sure + we freed the components. + + * pcs/query.c (func_completed_before): added 'completed-before?' + operator. + + * gui/calendar-config.c (calendar_config_configure_e_cell_date_edit): + don't set the lower & upper hour. Use 0-24 like the EDateEdit does. + + * gui/dialogs/cal-prefs-dialog.c (cal_prefs_dialog_show_config): set + the 12/24-hour time format options sensitive only if we support both. + + * gui/calendar-config.c (config_read): if the locale doesn't define + 'am' and 'pm' strings then we must use 24-hour format. + + * gui/calendar-commands.c (calendar_set_folder_bar_label): don't + translate the '%d' as it doesn't make much sense. Resolves bug #8027. + +2001-09-17 Federico Mena Quintero <federico@ximian.com> + + * gui/component-factory.c (owner_set_cb): Do not call + calendar_config_init() here. + + * gui/main.c (main): Call calendar_config_init() here. + +2001-09-17 Federico Mena Quintero <federico@ximian.com> + + * gui/alarm-notify/alarm.c (queue_alarm): Duh, only setup the + timeout if the list was empty. + (alarm_ready_cb): Notify with the ID of the original alarm. + (alarm_remove): Likewise. + +2001-09-17 Federico Mena Quintero <federico@ximian.com> + + Switch the alarm system from using SIGALRM to normal glib timers. + Also, use a more robust de-queueing mechanism. + + * gui/alarm-notify/alarm.c (alarm_init): Removed. + (alarm_done): Remove the glib timeout instead of closing the pipes + and the signal handler. + (alarm_add): Allow adding alarms that happen before right now. + (queue_alarm): Use a glib timer instead of a signal. + (alarm_remove): Adjust the timeout as appropriate. + + * gui/alarm-notify/notify-main.c (main): There is no need to + initialize the alarm system now. + + * gui/main.c (main): Likewise. + +2001-09-17 JP Rosevear <jpr@ximian.com> + + * gui/calendar-model.c (calendar_model_init): get itip addresses + (calendar_model_destroy): destroy same + (calendar_model_value_at): do more thorough checking on whether to + use recurring, assigned, assigned to or regular task icons + +2001-09-17 JP Rosevear <jpr@ximian.com> + + * cal-util/cal-component.c (for_each_remove_all_alarms): for each + call back, removes the alarms + (cal_component_remove_all_alarms): remove all alarms from the + component + + * cal-util/cal-component.h: new proto + + * gui/e-itip-control.c (write_error_html): writes error messages + rather than normal html + + * gui/itip-utils.c (itip_send_comp): remove all alarms if the + method warrants it + +2001-09-16 Christopher James Lahey <clahey@ximian.com> + + * gui/dialogs/meeting-page.c (build_etable): Updated this to match + the new ETableSimple interface. + +2001-09-14 Ettore Perazzoli <ettore@ximian.com> + + [Automake 1.5 fixes pointed out by Richard Boulton + <richard@tartarus.org>, as per #9258.] + + * cal-client/Makefile.am: Set CLEANFILES directly instead of using + `+='. + * gui/Makefile.am: Likewise. + * gui/alarm-notify/Makefile.am: Likewise. + * pcs/Makefile.am: Likewise. + +2001-09-14 Damon Chaplin <damon@ximian.com> + + * gui/e-itip-control.c (ok_clicked_cb): added space after 'identities' + in the message. Fixes bug #9896. + +2001-09-14 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/e-calendar.conduit.in: remove translation + marker for now + +2001-09-13 JP Rosevear <jpr@ximian.com> + + * cal-util/cal-component.h: use ical partstat, role, cutypes + directly + + * cal-util/cal-component.c: ditto + + * gui/e-itip-control.c (find_my_address): set my addresses if the + addresses match + (find_attendee): strstr returns non-null on a match + (write_html): use new icon, select the name displayed (organizer + or attendee) based on method, + (ok_clicked_cb): when rsvp'ing strip off all but the attendee + being replied for as is specified in the spec + (find_attendee_partstat): new util function to extract the + partstat of an attendee + (update_attendee_status): updates the partstat of a specific + attendee in the reply message + + * gui/dialogs/meeting-page.c: use ical partstat, role, cutypes + directly + (popup_delegate_cb): if we delegate, notify of needs send and + changed + (popup_delete_cb): notify of needs send and changed for each + deletion + +2001-09-12 JP Rosevear <jpr@ximian.com> + + * gui/calendar-commands.c (publish_freebusy_cmd): send 6 weeks of + free busy info starting with the UTC start of day + + * gui/itip-utils.c (get_label): create a text representation of + the given icaltime + (itip_send_comp): if the summary is empty, set the subject based + on the type of component, put the right extension on free/busy + components and base descriptions on type of component, include + start/end for free/busy info + +2001-09-11 Federico Mena Quintero <federico@ximian.com> + + * gui/alarm-notify/alarm-queue.c (display_notification): Added an + use_description argument so that other alarms can fall back to + this type. + (audio_notification): Implemented. + (remove_comp): Call remove_queued_alarm() here; there is no longer + a destroy notification function for alarms so must we do this + manually. + (alarm_trigger_cb): Do not pass the alarm to the notification + functions so that we can free it ourselves before all the alarms + in the component get freed. + (display_notification): Get the alarm here instead of getting it + as an argument. + (procedure_notification): Implemented. + +2001-09-11 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/meeting-page.c (invite_entry_changed): free the + destination vector when we finish with it, if we actually add + anyone, notify listeners of the needs send and changed info. Fixes + bug #8632. + +2001-09-10 Zbigniew Chyla <cyba@gnome.pl> + + * gui/print.c + (format_date): Convert string generated by strftime to UTF-8. + (print_week_view_background): Ditto. + (print_month_summary): Ditto. + (print_month_small): Use U_() instead of _(). + (print_day_background): Ditto. + (print_todo_details): Ditto. + (print_date_label): Convert generated string to UTF-8. + +2001-09-10 Federico Mena Quintero <federico@ximian.com> + + * cal-util/cal-component.c (cal_component_alarm_get_attach): + Handle the new icalattach type instead of struct icalattachtype. + (cal_component_alarm_set_attach): Likewise. + + * gui/dialogs/alarm-options.c (alarm_to_aalarm_widgets): Likewise. + (alarm_to_palarm_widgets): Likewise. + (aalarm_widgets_to_alarm): Likewise. + (palarm_widgets_to_alarm): Likewise. + +2001-09-05 Ettore Perazzoli <ettore@ximian.com> + + [Fix #958, ShellComponents should not be created by factories, for + the calendar.] + + * gui/GNOME_Evolution_Calendar.oaf.in: Remove the + ShellComponentFactory. + + * gui/component-factory.c (create_object): Renamed from + `component_fn'. Don't get any args. + (component_factory_init): Create the component using + `create_object()' and register it into OAF. + (COMPONENT_FACTORY_ID): Removed. + (COMPONENT_ID): New. + +2001-09-04 Federico Mena Quintero <federico@ximian.com> + + * gui/component-factory.c (sc_user_create_new_item_cb): + Implemented. + + * gui/main.c (component_editor_factory_init): New function to + create the factory for the comp_editor_factory. + + * gui/comp-editor-factory.c: Finished implementation. + + * gui/alarm-notify/alarm-queue.c (edit_component): Implemented the + Edit command. + + * gui/Makefile.am (evolution_calendar_SOURCES): Added + comp-editor-factory.[ch] to the list of sources. + +2001-09-03 Damon Chaplin <damon@ximian.com> + + * gui/calendar-commands.c (calendar_control_activate): + * gui/tasks-control.c (tasks_control_activate): don't call + calendar_config_check_timezone_set() now, since the startup wizard + handles that. + + * gui/e-tasks.c (e_tasks_class_init): changed selection_changed signal + to GTK_RUN_LAST. It has no reason to be GTK_RUN_FIRST. + + * gui/gnome-cal.c: + * gui/e-week-view.c: + * gui/e-day-view.c: added "selection_changed" signal, + XX_delete_event() and XX_get_num_events_selected(). + + * gui/e-day-view-top-item.c (e_day_view_top_item_draw): fix the shadow + around the dates at the top - it was 1 pixel off. + + * gui/calendar-commands.c: added sensitize_commands(), similar to in + tasks-control.c, so we only make Cut/Copy/Delete sensitive when an + event is selected. Also added delete_event_cmd(). + + * gui/dialogs/task-page.c (task_page_set_summary): + * gui/dialogs/event-page.c (event_page_set_summary): do nothing, + since the summary only gets changed on the main event/task page now. + Fixes bug #6939. + + * gui/e-day-view.c (e_day_view_on_main_canvas_drag_data_received): + (e_day_view_on_top_canvas_drag_data_received): check that we are + dragging an event from the same EDayView. We currently don't support + DnD from other widgets. + (e_day_view_update_top_canvas_drag): only get the summary if we + actually have an event. Fixes bug #5162. + + * gui/e-day-view.c (e_day_view_on_editing_stopped): if the text hasn't + changed we need to call e_day_view_update_event_label() to show the + times again if necessary. Fixes bug #1813. + + * gui/dialogs/comp-editor.c (comp_editor_destroy): destroy the + CompEditorPage objects here rather than in close_dialog(), after the + widgets have been destroyed. We do this because the widgets have lots + of signal handlers connected with the CompEditorPage objects as the + signal data, so we want to ensure that the data pointer is always + valid. (Alternatively we could disconnect all the handlers when the + CompEditorPage objects are destroyed, or use connect_while_alive()). + Fixes bug #7543. + + Note: there is still a small bug in that if you type in a time and + then hit 'Save and Close', the time won't be saved. I'm not sure + where this should be fixed - should the actions which close the + dialog grab the focus to the toplevel, so any widgets currently + being edited finish the edit and emit 'changed'? + + * gui/dialogs/recurrence-page.c (append_exception): use + gtk_clist_set_row_data_full() so freeing is handled automatically by + the GtkClist. This helps avoid problems at destroy-time. + (exception_delete_cb): just call gtk_clist_remove() now. No need to + free the row data as GtkCList now handles it. + (recurrence_page_destroy): no need to free the data in the clist. + + * gui/dialogs/alarm-page.c: ditto. + + * gui/dialogs/meeting-page.c: ditto. + (etable_destroy_cb): save the ETable state in this new handler cb + rather than in the destroy method, since the widget will already be + destroyed by then. + +2001-08-31 Damon Chaplin <damon@ximian.com> + + * gui/e-itip-control.c: changed 3 occurrences of 'Replyed' to 'replied' + +2001-08-31 Zbigniew Chyla <cyba@gnome.pl> + + * gui/e-itip-control.c (write_html): + Marked strings for translation (with U_). + + * gui/itip-utils.c (itip_send_comp): + Ditto. + +2001-08-31 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/comp-editor-util.c (comp_editor_contacts_to_widget): + (comp_editor_contacts_to_component): fix debugging messages so they + use "" rather than NULL. Fixes bug #8559. + +2001-08-29 Federico Mena Quintero <federico@ximian.com> + + * pcs/cal-backend-file.c (cal_backend_file_remove_object): See if + the set of categories changed by using the removed_categories hash + table. + (cal_backend_file_init): Create a table of removed categories. + This allows us to notify if and only if the set of category + changes when an object is updated/removed, instead of + unconditionally notifying if an object is updated. + (cal_backend_file_update_objects): Only notify if the set of + categories really changed. + (update_categories_from_comp): Shuffle the categories between the + priv->categories and priv->removed_categories lists. + +2001-08-28 Federico Mena Quintero <federico@ximian.com> + + Fixes bug #7879, a query may receive an update notification from + the backend before the query itself gets populated. + + * pcs/query.c (ensure_sexp): New function; ensures that the esexp + is created and notifies of parse errors. It is the bulk of + start_query_cb() but put in a separate function so that we can + share it elsewhere. + (start_query_cb): Use ensure_sexp(). + (process_component_cb): Oops, notify of a successfully finished + query. + (match_component): Call ensure_sexp(). This function can be + called by the backend notification callbacks before the query is + populated, so we need to make sure the esexp exists here. + +2001-08-22 Federico Mena Quintero <federico@ximian.com> + + * gui/cal-search-bar.c (cal_search_bar_construct): Set the + "category is" criterion as the default for the calendar and tasks. + +2001-08-22 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/recurrence-page.c (recurrence_page_fill_widgets): + Unset the priv->updating flag before returning in the case the + component has no recurrence information. Fixes bug #6850. + +2001-08-22 Federico Mena Quintero <federico@ximian.com> + + * gui/alarm-notify/alarm-queue.c (QueuedAlarm): Added a snooze + flag to differentiate snoozed alarms from real occurrences. + (add_component_alarms): Do not specify a destroy function for the + alarm trigger. We handle this in the callbacks now. + (alarm_trigger_cb): Just remove the alarms for the unimplemented + notification types. + (create_snooze): Implemented snooze. + (notify_dialog_cb): Snooze as appropriate. + +2001-08-22 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (foreach_tzid_callback): call back to add + timezones to the top level + (itip_send_comp): call icalcomponent_foreach_tzid + +2001-08-22 Dan Winship <danw@ximian.com> + + * gui/gnome-cal.c: #include <libgnomevfs/gnome-vfs-types.h> so + this will compile against gnome-vfs 1.0.1. + +2001-08-22 Rodrigo Moya <rodrigo@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_open): open the tasks folder + associated with the calendar being opened, and not always the local + tasks.ics file + + * pcs/cal-factory.c (open_fn): use gnome_vfs_uri_new_private when + parsing the URI to allow non-registered URIs + +2001-08-21 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/alarm-options.c (alarm_to_palarm_widgets): Handle + the case where there is no attachment. Fixes bug #7257. + +2001-08-21 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (write_html): strip the mailto bit for the + email address if we display it + +2001-08-21 Damon Chaplin <damon@ximian.com> + + * pcs/query.c (func_is_completed): added new e-sexp operator. We + don't currently use it though. + + * gui/dialogs/cal-prefs-dialog.glade: Changed '_Overdue' to 'O_verdue' + since we have an '_Other' notebook tab. Added '_Hide' accel. + + * gui/dialogs/cal-prefs-dialog.c: hooked up config options to dialog. + + * gui/calendar-config.c: added config options for hiding completed + tasks. + + * gui/e-week-view-event-item.c (e_week_view_event_item_draw): + * gui/e-day-view-top-item.c (e_day_view_top_item_draw_long_event): + * gui/e-day-view.c (e_day_view_reshape_long_event): added 2 pixels + extra space between icons and text for long events, and 1 pixel space + between icons in all events. + (e_day_view_realize): changed the background color to match the + EGrayBar in the shell. + +2001-08-21 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-backend-util.[ch]: new files to contain utility functions + for calendar backends + + * pcs/cal-backend.c (cal_backend_add_cal): implement it here, and not in + the calendar backends. Add a "cal_added" signal, so that backends are + notified when a new Cal is added, if they need to + (cal_backend_get_type_by_uid): implement it here + + * pcs/cal-backend-file.c (fill_alarm_instances_seq): moved to + cal-backend-util.c + (cal_backend_file_add_cal): removed + (cal_backend_file_init): connect to the "cal_added" signal in the + CalBackend class so that we can update categories when a new Cal is + added + (cal_backend_file_get_type_by_uid): removed + + * pcs/cal-backend-db.c (fill_alarm_instances_seq): moved to + cal-backend-util.c + (cal_backend_db_add_cal): removed + (cal_backend_db_get_type_by_uid): removed + + * AUTHORS: added JP and Damon to list of authors + +2001-08-20 Rodrigo Moya <rodrigo@ximian.com> + + * cal-util/cal-util.[ch] (cal_util_generate_alarms_for_list): + (cal_util_generate_alarms_for_comp): + new functions moved from the CalBackendFile, to allow its use outside + of it. The signature has changed a little bit, since these functions + need a way to get the timezones from the callers, so a callback + function to resolve the timezones has been added to the list of + parameters + + * pcs/cal-backend-file.c (generate_alarms_for_list): + (generate_alarms_for_comp): moved to cal-util, with all their related + functions/structures + + * pcs/cal-backend-db.c: removed functions that were moved to cal-util + +2001-08-20 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/comp-editor.c (pixmaps): use Delete icon in menu, and + change to bigger Save icon in toolbar. + + * gui/tasks-control.c: + * gui/calendar-commands.c (pixmaps): used new_task-16.png and + goto-16.png. + +2001-08-20 Damon Chaplin <damon@ximian.com> + + * gui/calendar-commands.c (pixmaps): added delete icons for menu + and toolbar. + +2001-08-20 Damon Chaplin <damon@ximian.com> + + * gui/tasks-control.c: added Cut/Copy/Paste icons for toolbar. + +2001-08-20 Damon Chaplin <damon@ximian.com> + + * gui/tasks-control.c: uses new delete icons in menu & toolbar. + +2001-08-19 Ettore Perazzoli <ettore@ximian.com> + + * gui/component-factory.c: Update the folder list to include a + display name and a description. + +2001-08-20 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/comp-editor.c (pixmaps): use new delete icon for toolbar. + +2001-08-19 Damon Chaplin <damon@ximian.com> + + * gui/e-itip-control.c: fixed typo, 'send' -> 'sent'. Bug #7621. + +2001-08-18 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/cal-prefs-dialog.glade: added option to hide completed + tasks after a given number of minutes/hours/days. Unfinished. + + * gui/dialogs/event-page.c (event_page_fill_component): initialize + zone to NULL to avoid a warning. + (contacts_clicked_cb): work around a bug in SelectNames by notifying + that the page has changed when you click the 'Contacts' button. + Otherwise it is easy to lose changes. + + * gui/dialogs/task-page.c (contacts_clicked_cb): ditto. + +2001-08-18 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/comp-editor.c (pixmaps): used new Save/Save As icons. + + * gui/tasks-control.c: + * gui/calendar-commands.c (pixmaps): added new Cut/Copy/Paste icons, + and changed the 'New Task' icon to use the bigger one I made. + +2001-08-05 Zbigniew Chyla <cyba@gnome.pl> + + * gui/dialogs/task-page.c (summary_changed_cb): + Use e_dialog_editable_get instead of gtk_editable_get_chars (we need + UTF-8 string). + +2001-08-18 Zbigniew Chyla <cyba@gnome.pl> + + * gui/calendar-config.c (locale_uses_24h_time_format): New. + (config_read): Use locale's setting as default for + /Calendar/Display/Use24HourFormat so that Europeans don't have to + switch to 24-hour format manually. + +2001-08-17 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (destroy): destroy the addresses + (clean_up): don't free the addresses, we need them + +2001-08-17 Damon Chaplin <damon@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_new_task): new function to open the + task editor to add a new task. + + * gui/calendar-commands.c: added new_task_cb() to create a new task + in the calendar folder, and added menu commands for it, and a toolbar + button (I think that is what Ettore wanted. Maybe he just meant menu + commands. Anyway, it is easy to take out.) Note that we don't have a + decent icon for 'New Task' for the toolbar. + Also added the new Goto button (but we don't have a similar one for + the menu command). + +2001-08-16 Iain Holmes <iain@ximian.com> + + * gui/Makefile.am: Add the libetimezonedialog.a lib link + + * gui/calendar-config.c: Change the #include for the timezone dialog + + * gui/e-timezone-entry.c: Ditto. + + * gui/dialogs/Makefile.am: Remove the e-timezone-dialog stuff. + +2001-08-16 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/event-page.c: hide the timezone fields for all-day + events. We will use DATE values for these eventually, and these + don't have timezones associated with them. Currently we just use the + default timezone for all-day events, as a workaround until we have + DATE values working. + + * gui/dialogs/comp-editor-util.c (comp_editor_new_date_edit): added + make_time_insensitive flag. Though we may not use it. + + * gui/dialogs/event-page.glade: made the 'All day event' toggle + right-aligned, so it doesn't move when the other widgets are shown + and hidden. + + * gui/e-timezone-entry.c (e_timezone_entry_set_default_timezone): new + function to set the default timezone of the widget. If the current + timezone setting matches the default then the entry field is hidden. + Most people won't use timezones so this makes the GUI simpler. + + * gui/dialogs/event-page.c (init_widgets): + * gui/dialogs/task-page.c (init_widgets): set the default timezone + using the above function. + + * gui/dialogs/task-page.c (task_page_fill_widgets): if the start date + or due date is not set, we use the default timezone, so the user + doesn't have to set this each time they set the date. + +2001-08-16 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/alarm-page.c (alarm_page_fill_widgets): If the + component has no alarms remember to set the priv->updating flag to + FALSE before returning. + +2001-08-16 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/e-delegate-dialog.c + (e_delegate_dialog_get_delegate_name): get the destinations + property, not the text property + +2001-08-16 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/alarm-page.c (clear_widgets): Set the default-to-add + notification to be display a message 15 minutes before the start + of the appointment. Fixes bug #7175. + +2001-08-16 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/comp-editor-util.c (comp_editor_strip_categories): + New function to strip surrounding whitespace from a string of + categories entered by the user. + + * gui/dialogs/task-page.c (task_page_fill_component): Use + comp_editor_strip_categories(). + + * gui/dialogs/event-page.c (event_page_fill_component): Likewise. + +2001-08-16 Federico Mena Quintero <federico@ximian.com> + + * gui/calendar-config.c (calendar_config_configure_e_date_edit): + Do not set the time popup range. We also want to be able to + create appointments that are not within nine-to-five! Think of + going to the movies! Fixes bug #7436. + + * gui/dialogs/cal-prefs-dialog.glade: "am/pm" is now "AM/PM". + Fixes bug #7367. + +2001-08-16 Jon Trowbridge <trow@ximian.com> + + * gui/cal-search-bar.c: Changed to reflect my renaming of some of + the more hideously-named functions in the ESearchBar API. + +2001-08-15 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/comp-editor.c (save_comp): only fill the component + and save it if something has changed + (save_comp_with_send): only try to send if something has changed + and the editor needs a send + +2001-08-15 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/cal-prefs-dialog.glade: OK, re-added the default + alarm options. Way too many people are asking for them. + +2001-08-15 Federico Mena Quintero <federico@ximian.com> + + * gui/component-factory.c (factory_fn): Add the user creatable + items. The callback is not actually implemented yet; this is just + to finalize the GUI. + + * gui/dialogs/cal-prefs-dialog.glade: Added an option to ask for + confirmation when deleting items. Added underlined shortcuts + (they may not all work currently). + +2001-08-14 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/task-page.c: + * gui/dialogs/event-page.c: added support for the Contacts field. + Note that I'm not sure what we should put in the iCalendar CONTACT + properties. Currently we put "name <email>", but it isn't recognized + as a contact when we reopen the dialog, so we may need more info here. + Also we currently use a simple parser to parse the above format, and + we should maybe use some camel function. + + * gui/dialogs/task-page.glade: + * gui/dialogs/event-page.glade: replaced the GtkEntry fields for the + Contacts with a GtkEventBox which we put the BonoboControl in at + runtime. + + * gui/dialogs/meeting-page.c (invite_entry_changed): added FIXMEs + since it doesn't seem to be freeing the EDestination stuff. JP? + + * gui/dialogs/comp-editor-util.c: added bunch of utility functions to + handle the Contacts field in the main Event and Task pages. + + * gui/gnome-cal.c: added visible_start and visible_end fields, so we + only emit the 'dates-shown-changed' signal when really necessary. + Currently changing the folder title bar label results in a complete + redraw of the Evolution window (silly GtkLabel queueing a resize), + so we want to avoid that as much as possible. + (gnome_calendar_new_appointment_for): only move the event's end time + to the end of the day if it is not already 00:00:00. + + * gui/e-week-view-event-item.c: + * gui/e-week-view.c: + * gui/e-day-view.c: added support for double-clicking on an event to + open it, and for double-clicking on the background to create a new + event. There is still a minor problem to sort out, but it basically + works. + + * cal-util/cal-component.c: added support for CONTACT properties, + mainly by copying the code for COMMENT properties which are exactly + the same type. + + * gui/e-day-view.c (e_day_view_realize): use the same color for the + top canvas background as the shortcut bar, to make it look a little + nicer (I think). Although we still have the theme problem with + hard-coded colors. + +2001-08-14 Federico Mena Quintero <federico@ximian.com> + + * gui/e-calendar-table.etspec: Made the click-to-add message + shorter. Fixes bug #7177. + +2001-08-14 Federico Mena Quintero <federico@ximian.com> + + * gui/calendar-commands.c (pixmaps): Added Tigert's new icons for + Prev and Next. + +2001-08-14 Federico Mena Quintero <federico@ximian.com> + + * gui/cal-search-bar.c (make_suboptions): Make the "Any Category" + item consistent with the one in the addressbook. Also, free the + items correctly. + +2001-08-14 Federico Mena Quintero <federico@ximian.com> + + * gui/cal-search-bar.c (get_current_category): Handle an array of + categories in the CalSearchBar instead of our own menu items. + (notify_query_contains): Fetch the text from the search bar here + instead of in regen_query(). + (regen_query): Handle category searches. + (notify_category_is): New function. + (cal_search_bar_construct): Do not create an option menu. + (make_suboptions): New function to create the suboption items from + the list of categories. + (notify_query_contains): Do not include a category sexp here. + +2001-08-13 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (update_item): add dialog for feedback + (remove_item): ditto + (send_item): ditto + (send_freebusy): ditto + +2001-08-13 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c: rewrite the gui to use gtkhtml + + * gui/Makefile.am: define the icon dir + +2001-08-12 Kjartan Maraas <kmaraas@gnome.org> + + * gui/e-itip-control.h: Remove #include <config.h> from here. + * gui/itip-utilss.h: Same here. + +2001-08-11 Ettore Perazzoli <ettore@ximian.com> + + * gui/tasks-control.c: Update the paths of the Tools menu + according to the changes in the XML [i.e. things are moved to the + ComponentToolsPlaceholder]. + + * gui/calendar-commands.c: Likewise. + +2001-08-11 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/event-page.c (init_widgets): + * gui/dialogs/task-page.c (init_widgets): turn on word-wrap for the + description fields. Fixes bug #6821. + +2001-08-10 Jon Trowbridge <trow@ximian.com> + + * gui/cal-search-bar.c: Where we have ESearchBarItems, set their + subitems to NULL. + +2001-08-09 Damon Chaplin <damon@ximian.com> + + * pcs/cal-backend.c (cal_backend_get_object_component): added new + backend method to get the component given a UID. + + * pcs/cal-backend-file.c (cal_backend_file_get_object_component): + added implementation of above virtual method. + + * pcs/query.c (match_component): use the new backend function to get + the CalComponent rather than the string. This avoids converting all + the calendar components to strings and parsing them back into + components for every query! (That wasn't a good idea, was it ;) + + * gui/e-week-view.c: + * gui/e-day-view.c: use a timeout handler to layout the events, + to avoid doing a layout for each event we get from a query. + + * gui/print.c (print_day_add_event): + * gui/e-day-view.c (e_day_view_add_event): set start_row_or_col and + num_columns to 0. They are guint8's. + + * gui/e-week-view.c (e_week_view_free_events): hide all the jump + buttons. Fixes bug #5946. + + * gui/calendar-commands.c (calendar_set_folder_bar_label): added the + day numbers for the month view. + + * gui/dialogs/recurrence-page.glade: changed "_Delete" to "_Remove", + since it clashed with "_Add". Also added underlined accelerators for + the recurrence radio buttons. Note that none of these accelerators + actually work at present, due to the way we are using .glade files + for each notebook page. I need to add a bug about this. + Also, the "_Action" menu doesn't popup when I press Alt+A, even though + the "_File" menu does popup when I press Alt+F. Strange. + + * pcs/cal-backend-file.c (cal_backend_file_get_timezone_object): + removed debug msgs. + +2001-08-09 Rodrigo Moya <rodrigo@ximian.com> + + * 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): + * gui/e-week-view-event-item.c (e_week_view_event_item_draw_icons): + unref the GdkPixmap and GdkBitmap returned by the function + e_categories_config_get_icon_for () + +2001-08-09 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/task-page.*: Remove progress frame + + * gui/dialogs/task-details-page.*: Put in progress frame, remove + basics frame + + * gui/dialogs/task-editor.c (set_menu_sens): util function to set + menu sensitivity based on state + (task_editor_init): add meeting page + (task_editor_edit_comp): show page if necessary + (task_editor_destroy): unref meeting page + (assign_task_cmd): bring up meeting page + (refresh_task_cmd): save before sending + (forward_cmd): ditto + + * gui/dialogs/comp-editor.c (save_cmd): implement new save command + +2001-08-09 Federico Mena Quintero <federico@ximian.com> + + * gui/e-itip-control.c (destroy): Chain to the destroy handler in + the parent class! + + * gui/dialogs/comp-editor-page.c (comp_editor_page_destroy): + Likewise. Sigh. + + * gui/cal-search-bar.c (cal_search_bar_destroy): Whoops, added a + destroy handler. + +2001-08-08 Damon Chaplin <damon@ximian.com> + + * gui/goto-dialog.glade: removed underlined accelerator key from + "_Go To Today" button. GnomeDialog doesn't actually support underlined + accelerator keys for buttons. We could hack it, like Glade does, if + we really need to. Fixes bug #6418. + +2001-08-08 Federico Mena Quintero <federico@ximian.com> + + * gui/e-day-view.c (update_query): Stop editing any event. Fixes + bug #5949. + +2001-08-08 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/alarm-page.c (alarm_page_fill_component): Duuuh, set + the alarm_copy on the component, not the original alarm. Fixes + bug #5214. + +2001-08-08 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/meeting-page.c (set_attendees): set the attendees of + a component + (meeting_page_fill_component): use above + (meeting_page_get_cancel_comp): return a comp with the attendees + to be cancelled + + * gui/dialogs/meeting-page.h: get a component that will be sent as + a cancellation + + * gui/dialogs/event-editor.c (event_editor_class_init): override + send_comp class method + (event_editor_send_comp): send cancellation notices to deleted + attendees + (refresh_meeting_cmd): save before send + (forward_cmd): ditto + + * gui/dialogs/comp-editor.c (comp_editor_class_init): set default + send_comp method + (real_send_comp): do the real work + (comp_editor_send_comp): call class method + (save_comp): don't do any sending + (save_comp_with_send): save and send here + (prompt_to_save_changes): use above + (save_close_cmd): ditto + + * gui/dialogs/comp-editor.h: add virtual function + +2001-08-08 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-week-view-event-item.c + (e_week_view_event_item_draw_icons): don't use a NULL mask in the + call to gdk_gc_set_clip_mask + + * gui/e-day-view-top-item.c (e_day_view_top_item_draw_long_event): + ditto + + * gui/e-day-view-main-item.c + (e_day_view_main_item_draw_day_event): ditto + +2001-08-08 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit-config.h: fix pre-processor + macros + + * conduits/calendar/calendar-conduit.h: ditto + + * conduits/todo/todo-conduit-config.h: fix pre-processor macros + + * conduits/todo/todo-conduit.h: ditto + +2001-08-07 Federico Mena Quintero <federico@ximian.com> + + * cal-client/cal-listener.c (cal_listener_stop_notification): New + function to stop further notification from happening. + (impl_notifyCalOpened): Do not notify if requested. + (impl_notifyObjUpdated): Likewise. + (impl_notifyObjRemoved): Likewise. + (impl_notifyCategoriesChanged): Likewise. + (CalListenerPrivate): Do not keep a reference to the server-side + Cal. This would create a circular reference since the server + keeps a reference to the listener. + (cal_listener_destroy): Likewise. + (impl_notifyCalOpened): Likewise. + + * pcs/cal.c (cal_destroy): bonobo_object_release_unref() the listener. + + * cal-client/cal-client.c (cal_client_destroy): Ask the listener + to stop notifications. Also, do not unref it as the server does + that itself when we unref the Cal. + +2001-08-07 Federico Mena Quintero <federico@ximian.com> + + * gui/calendar-model.c (calendar_model_free_value): Only unref the + FIELD_COMPONENT if it is non-NULL. We return a NULL for that + field from ::initialize_value(), after all. Fixes bug #6098. + +2001-08-07 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (itip_send_comp): Make calendar.ics the + suggested name when attaching the ical object + +2001-08-06 Damon Chaplin <damon@ximian.com> + + * gui/e-week-view.h: + * gui/e-day-view.h: added 'different_timezone' fields to EDayViewEvent + and EWeekViewEvent, to note that the event is in a different timezone. + We now compute this once when we add the event to the array, rather + than each time we draw the event. If it is set, we will draw the + timezone icon next to the event. + + * gui/e-day-view-main-item.c: take transparency into account when + drawing the blue vertical bars to represent busy time. + + * gui/tag-calendar.c: take transparency into account when tagging + the mini calendar. + + * gui/e-calendar-table.c (e_calendar_table_init): removed the "None" + options for transparency and classification, since these properties + have defaults anyway, so we may as well use those to keep it simple. + Also use "Free" and "Busy" for transparency, rather than "Transparent" + and "Opaque". + + * gui/calendar-model.c: updated classification & transparency code + as above. + + * gui/e-calendar-table.etspec: changed "Transparency" to "Show Time As" + since people have a chance of understanding that. + + * gui/e-week-view.c: + * gui/e-day-view.c: + * gui/gnome-cal.c: added functions to get the visible time range. + + * gui/calendar-commands.c: finished stuff to set the folder bar + label to the dates currently displayed. + + * gui/control-factory.c (control_factory_new_control): connected + signal to update the folder title bar label when the dates shown + are changed. I had to connect it here since we need the BonoboControl + in the callback, and I don't know how to get the control from the + widget. + + * gui/tasks-control.c (tasks_control_activate): clear the folder bar + label. We could display something here at some point. + + * gui/dialogs/recurrence-page.glade: changed "_Add" to "A_dd", since + we have an "_Actions" menu. (These also use Alt+key, right?) + + * gui/dialogs/event-page.glade: + * gui/dialogs/event-page.c: added 'Show Time As' field, which is + really the TRANSP property but with a better name! + Also changed one of the "_Confidential" to "Con_fidential" since we + already have "_Contacts" using the same 'C' key. + + * pcs/cal-backend-file.c (cal_backend_file_get_free_busy): skip + events that are TRANSPARENT. Also added comment as this code looks + inefficient. + + * cal-util/cal-component.c: removed stuff for comparing timezones. + + * gui/comp-util.c (cal_comp_util_compare_event_timezones): moved the + above function here, and updated it to compare the UTC offsets of the + times as well as the TZIDs. + +2001-08-06 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/cal-prefs-dialog.glade: In process of fixing bug + #6005. The "Calendar" page is now "Display", and it has no + frames. The "Task list" page has colons between the labels and + the color pickers, and it has no frame. + +2001-08-06 Rodrigo Moya <rodrigo@ximian.com> + + * cal-client/cal-client.c (destroy_wombat_client): added check for + NULL pointers. Maybe fixes #5203 (I can't reproduce it, so I'm not + sure) + +2001-08-03 Federico Mena Quintero <federico@ximian.com> + + * cal-client/query-listener.c (query_listener_stop_notification): + New function; stops further notification from happening. This is + needed since the listener is destroyed asynchronously from the + Wombat and the corresponding CalQuery may already have died. + (impl_notifyObjUpdated): Do not notify if requested. + (impl_notifyObjRemoved): Likewise. + (impl_notifyQueryDone): Likewise. + (impl_notifyEvalError): Likewise. + + * cal-client/cal-query.c (cal_query_destroy): Use + query_listener_stop_notification(). + + * cal-client/cal-listener.c (cal_listener_destroy): Nullify the + pointers to the callback functions. + + * gui/e-day-view.c (update_query): Commit our state of no longer + having a query before unrefing it. We may reenter from the ORBit + main loop and we *really* want this information to be committed. + + * gui/e-week-view.c (update_query): Likewise. + + * gui/calendar-model.c (update_query): Likewise. + + * gui/tag-calendar.c (tag_calendar_by_comp): Added a "clear_first" + argument that indicates whether the ECalendar should be cleared of + any marks first. + + * gui/calendar-commands.c (calendar_control_activate): Removed + ifdefed-out view buttons code from the Gnomecal days. + + * gui/gnome-cal.c (client_categories_changed_cb): Merge the + categories of the calendar and tasks clients so that we can + display the categories in both sets. + (gnome_calendar_construct): Connect to "categories_changed" on + both clients. + (gnome_calendar_on_date_navigator_selection_changed): Removed call + to gnome_calendar_update_view_buttons(). + (gnome_calendar_update_view_buttons): Removed. We cannot have + this until Bonobo supports radio toolbar items. + (gnome_calendar_set_view_buttons): Removed. + (gnome_calendar_dayjump): Do not use priv->day_button. + (GnomeCalendarPrivate): Removed the {day,work_week,week,month}_button + fields. + (gnome_calendar_set_query): Start a retagging process of the date + navigator so that it reflects the current query. + (update_query): New function to restart a query for the date navigator. + (initial_load): Use update_query() instead of tagging the date + navigator directly. + (gnome_calendar_on_date_navigator_date_range_changed): Likewise. + (client_cal_opened_cb): Use update_query() instead of initial_load(). + (initial_load): Removed. + (client_obj_updated_cb): Removed. + (client_obj_removed_cb): Removed. + (gnome_calendar_new_appointment_for): Set the default category of + the new component. + (search_bar_category_changed_cb): Set the default category for the + calendar views. + + * gui/cal-search-bar.c (cal_search_bar_set_categories): Sort the + categories before creating the menu. + + * gui/e-day-view.c (adjust_query_sexp): Return NULL instead of + "#f" if the time range is not set yet. + (update_query): Do not start a query if the time range is not set. + (e_day_view_set_default_category): New function. + (e_day_view_key_press): Set the default category on the new + component. + + * gui/e-week-view.c (adjust_query_sexp): Analogous to the above. + (update_query): Analogous to the above. + (e_week_view_set_default_category): Analogous to the above. + (e_week_view_key_press): Analogous to the above. + +2001-08-03 Federico Mena Quintero <federico@ximian.com> + + Fixes bug #1407. + + * gui/dialogs/cal-prefs-dialog.glade: Removed the alarm + preferences page, since we decided it was unnecessary. + +2001-08-03 Zbigniew Chyla <cyba@gnome.pl> + + I18n fixes. + + * gui/dialogs/event-page.c (summary_changed_cb): + Use e_dialog_editable_get instead of gtk_editable_get_chars (we need + UTF-8 string). + + * gui/itip-utils.c: + Added missing #include <config.h> + +2001-08-02 Jon Trowbridge <trow@ximian.com> + + * gui/Makefile.am: Added camel dependency (now needed by ebook). + +2001-08-01 Federico Mena Quintero <federico@ximian.com> + + * gui/calendar-model.c (calendar_model_value_is_empty): If the + default category is the same as the value passed in to this + function, return TRUE. This could be a hack or not, but it + prevents two items from being added to the table if a category is + selected. + + * gui/e-tasks.c (setup_widgets): Allow the search bar to shrink + horizontally. + + * gui/dialogs/task-page.c (clear_widgets): Pass valid values to + e_dialog_option_menu_set(); these need to come from the status map. + +2001-08-01 Damon Chaplin <damon@ximian.com> + + * cal-client/cal-client.c: removed debugging messages. + +2001-08-01 Federico Mena Quintero <federico@ximian.com> + + The calendar search bar widget now includes a drop-down menu of + available categories. + + * pcs/query.c (func_has_categories): Handle one and only one #f + value as meaning "unfiled", for components that have no categories + at all. + + * pcs/cal-backend-file.c (open_cal): Duh, do not notify here about + changed categories since at this point we don't have any clients + bound to us yet. + (create_cal): Likewise. + (cal_backend_file_add_cal): Notify here. + + * gui/cal-search-bar.h (CalSearchBarClass): New signal + "category_changed". + + * gui/cal-search-bar.c (cal_search_bar_construct): Add a drop-down + menu for the list of categories. + (search_option_items): Removed the "Has category" option, since we + now have the drop-down menu instad and it would be confusing to + have both options. + (regen_query): Likewise. Also, this function is now the old + cal_search_bar_query_changed() and is shared by that very function + and by the callback from the drop-down menu. + (notify_query_contains): Include the sub-sexp for the categories. + (cal_search_bar_set_categories): New function. + (cal_search_bar_get_category): New function. + (categories_selection_done_cb): Emit the "category_changed" signal. + + * gui/e-tasks.c (obj_updated_cb): Removed function since it did + not do anything; all updates are handled by the CalendarModel. + (obj_removed_cb): Likewise. + (ETasksPrivate): Removed the fields for the categories option + menu, since now it is in the ESearchBar. + (search_bar_sexp_changed_cb): Use calendar_model_set_query() + directly here, as we do not need to frob the sexp anymore. + (update_query): Removed. + (client_categories_changed_cb): New callback. + (search_bar_category_changed_cb): New callback. + (e_tasks_new_task): Set the default category on the component to + the one that is selected in the search bar. + (e_tasks_on_filter_selected): Removed. + (e_tasks_on_categories_changed): Removed. + (e_tasks_rebuild_categories_menu): Removed. + (e_tasks_add_menu_item): Removed. + (e_tasks_setup_view_menus): Sanitized not to sink objects wildly. + (e_tasks_discard_view_menus): New function. + + * gui/calendar-model.h (CalendarModelClass): Removed the + "categories_changed" signal since this is handled in the Wombat + now. + + * gui/calendar-model.c (calendar_model_get_categories): Removed. + (calendar_model_set_value_at): Do not collect the categories. + (query_obj_updated_cb): Likewise. + (calendar_model_collect_categories): Removed. + (calendar_model_set_default_category): Constify. + + * gui/tasks-control.c (tasks_control_deactivate): Call + e_tasks_discard_view_menus(). + + * gui/gnome-cal.c (search_bar_category_changed_cb): Set the + default category for the task pad's model. + +2001-07-31 Federico Mena Quintero <federico@ximian.com> + + The Wombat now keeps track of which categories are present in the + objects of a calendar. It will notify the clients of changes in + this set. This is to make the category drop-down menus in the + calendar/tasks views be always up to date. + + * idl/evolution-calendar.idl (Listener): Added a + notifyCategoriesChanged() method. The Wombat now keeps track of + the categories within a calendar. + + * cal-client/cal-listener.[ch]: Switched it to use BonoboXObject. + Also added the notifyCategoriesChanged implementation. + + * cal-client/cal-client.[ch]: Added a "categories_changed" signal. + + * pcs/cal-backend-file.c: Maintain a list of the live categories. + (update_categories_from_comp): New function to maintain the set of + live categories. + (add_component): Update the set of categories. + (remove_component): Likewise. + (open_cal): Notify about changes in the set of categories. + (create_cal): Likewise. + (cal_backend_file_update_objects): Likewise. + (cal_backend_file_remove_object): Likewise. + (notify_categories_changed): New function to notify the clients + about the current set of categories. + + * pcs/cal.c (cal_notify_categories_changed): New function. + +2001-07-31 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-day-view.c (selection_received): + * gui/e-week-view.c (selection_received): yes, set the end date, but + correctly calculated, not by using the component's duration, which + may not exist. Now really fixes #5836 + +2001-07-31 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-day-view.c (selection_received): + * gui/e-week-view.c (selection_received): don't set the end date + for the pasted components, since it will be recalculated when the start + date is set, thus keeping the same duration than the original + cut/copied component. Fixes #5836 + +2001-07-30 Damon Chaplin <damon@ximian.com> + + * gui/gnome-cal.c: + * gui/calendar-commands.c (clear_folder_bar_label): started some code + to show the currently displayed dates in the folder title bar. + Unfinished. + + * gui/e-itip-control.c (set_date_label): + * conduits/todo/todo-conduit.c (local_record_from_comp): + * conduits/calendar/calendar-conduit.c (local_record_from_comp): free + the CalComponentDateTimes. (Note the iTIP control needs updating for + timezone support.) + + * cal-util/cal-component.c: Changed CalComponentDateTime so that the + TZID is malloc'ed and freed rather than being a pointer to a static + string. This was causing problems as sometimes we were freeing the + string that was being pointed to, so we got corrupted TZIDs. + + * gui/comp-util.c (cal_comp_util_add_exdate): set TZID to NULL. + DATE values do not have timezones. + + * gui/e-week-view.c: + * gui/e-day-view.c: Moved 'Paste' after the New Appointment commands, + since I think they are more commonly-used. Also added underlined + accelerator keys. + + * gui/e-calendar-table.c: changed 'Edit this task' to 'Open' in the + popup menu to be consistent with other folders, and separated from the + clipboard commands. Also changed to use EPopupMenu so the accelerators + work, and the masks may be useful at some point. + + * gui/dialogs/recurrence-page.c: use DATE values for UNTIL, since + that makes it simpler. Fixes bug #5034. + + * gui/calendar-config.c (calendar_config_set_timezone): strdup the + location string. Fixes bug #4990. + + * gui/tag-calendar.c (tag_calendar_cb): take 1 off iend as the times + don't include the end time. + + * gui/e-week-view-layout.c (e_week_view_layout_event): fixed + days_shown. Fixes bug #5709. + + * cal-client/cal-client.c (cal_client_get_timezone): took out some + debugging messages. + +2001-07-30 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/cal-prefs-dialog.glade: added Help button. Though of + course it doesn't do anything yet. + +2001-07-30 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/meeting-page.c: Mark strings for translation + +2001-07-30 Rodrigo Moya <rodrigo@ximian.com> + + * cal-client/client-test.c (cal_opened_cb): call + cal_client_get_free_busy for testing the new method + + * pcs/cal-backend-file.c (cal_backend_file_get_free_busy): implemented + +2001-07-28 Federico Mena Quintero <federico@ximian.com> + + Fixes bug #5352. + + * gui/dialogs/cal-prefs-dialog.c (cal_prefs_dialog_show): Added a + `page' argument so that we can select which page to show when + popping up the dialog. + (cal_prefs_dialog_construct): Added the `page' argument as well. + (cal_prefs_dialog_new): Likewise. + + * gui/calendar-commands.c (settings_cmd): Set the page to the main + calendar settings one. + + * gui/tasks-control.c (tasks_control_settings_cmd): Implemented + callback for the "Task Settings" command. + (verbs): Added the "TasksSettings" verb. + (pixmaps): Added an icon for the tasks settings command. + +2001-07-27 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (local_record_from_comp): + recur is always in UTC + +2001-07-27 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c: handle timezones + everywhere + (get_timezone): new function to get a timezone based + on a tzid + (get_default_timezone): get default timezone + + * conduits/calendar/calendar-conduit.h: time zone field for the + context + + * conduits/calendar/Makefile.am: link to bonobo conf + + * conduits/todo/todo-conduit.c: handle timezones + everywhere + (get_timezone): new function to get a timezone based + on a tzid + (get_default_timezone): get default timezone + + * conduits/todo/todo-conduit.h: time zone field for the + context + + * conduits/todo/Makefile.am: link to bonobo conf + +2001-07-27 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-day-view-main-item.c (e_day_view_main_item_draw_day_event): + * gui/e-day-view-top-item.c (e_day_view_top_item_draw_long_event): + * gui/e-week-view-event-item.c (e_week_view_event_item_draw_icons): + initialize to NULL some pointers + + * e-calendar-table.c (selection_received): deal correctly with + VCALENDAR objects + (e_calendar_table_copy_clipboard): g_strdup the value returned by + icalcomponent_get_as_ical_string + +2001-07-27 Federico Mena Quintero <federico@ximian.com> + + * gui/gnome-cal.c (gnome_calendar_set_query): Constify and set the + query sexp on the task pad's model as well. + +2001-07-27 Federico Mena Quintero <federico@ximian.com> + + * gui/cal-search-bar.[ch]: New files with a derivative of + ESearchBar that generates sexps for calendar queries directly. + + * gui/gnome-cal.c (setup_widgets): Use CalSearchBar instead of + ESearchBar. + + * gui/e-calendar-table.h (ECalendarTable): Removed the ->colors + array since it is handled by ETableExtras now. + + * gui/e-calendar-table.[ch]: Removed the subset_model. Now we use + the live query facility to filter tasks. Removed the filter + function stuff as well. + + * gui/e-tasks.c (e_tasks_construct): Use + calendar_model_set_cal_client() directly instead of + e_calendar_table_set_model(). + (setup_widgets): Create a calendar search bar for the tasks + component. + (search_bar_sexp_changed_cb): Set the query sexp on the table model. + (e_tasks_on_filter_selected): Regenerate the query from the + selected category and the current sexp. + (update_query): New convenience function to recompute the real + query sexp. + + * gui/gnome-cal.c (gnome_calendar_construct): Likewise. + + * gui/e-calendar-table.c (e_calendar_table_set_cal_client): + Removed function; people are now supposed to get the model from + the calendar table and operate on it. + + * gui/calendar-commands.c (verbs): Consistency fixes with the XML + file. + (pixmaps): Likewise. + + * gui/Makefile.am (evolution_calendar_SOURCES): Added + cal-search-bar.[ch] to the list of sources. + +2001-07-20 Federico Mena Quintero <federico@ximian.com> + + * idl/evolution-calendar.idl (CompEditorFactory): New interface to + a centralized factory for calendar component editors. Has + editExisting() and editNew() methods to edit an existing component + from a URI/UID pair, and to create a new component in a calendar + that is in a particular URI, respectively. + + * gui/comp-editor-factory.[ch]: Implementation files for the + component editor factory. + + * gui/GNOME_Evolution_Calendar.oaf.in: Added the CompEditorFactory + stuff. + + * gui/Makefile.am (evolution_calendar_SOURCES): Added + comp-editor-factory.[ch] to the list of sources. + +2001-07-26 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/meeting-page.c (invite_entry_changed): when an entry + has changed, iterate over the elements of the entry and add them + to the list if need be + (get_select_name_dialog): add a Chair Persons section + + * gui/itip-utils.c (itip_send_comp): send the empty string as + subject if there is no summary + +2001-07-26 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c (itip_send_comp): send the empty string as + subject if there is no summary + + * gui/dialogs/meeting-page.c (cleanup_attendees): free a list of + attendees + (meeting_page_fill_widgets): clean up attendee lists and fix typo + (find_match): add ability to return pos of match + (popup_delete_cb): if deletion happens, make sure to tidy up + delegation chain + + * gui/dialogs/e-delegate-dialog.c (e_delegate_dialog_construct): + use the destination rather than text property + (e_delegate_dialog_get_delegate): ditto + (e_delegate_dialog_new): take name/address pair for dialog default + + * gui/dialogs/e-delegate-dialog.h: update protos + + * gui/e-itip-control.c (clean_up): only unref the object if we + have one + + * gui/itip-control-factory.c (stream_read): make sure we null + terminate the final buffer + + * gui/itip-utils.c (itip_send_comp): strip the mailto: from the + organizer address if necessary + +2001-07-26 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/recurrence-page.c (exception_select_row_cb): check that + the row passed in is valid. Sometimes we get the "row-selected" + signal for row 0 when there are no rows in the list. Fixes bug #4266. + + * cal-client/cal-client.c (cal_client_get_object): prefetch all the + timezone data needed by the object, to try to avoid making Corba + calls all over the place. They can cause problems because they call + the GTK+ main loop recursively. This currently leads to an assertion + failure in the GnomeCanvas occasionally. + +2001-07-25 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (e_itip_control_set_data): gracefully + handle the lack of a method + +2001-07-25 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-day-view.c (selection_received_cb): check type of component + before actually pasting. + Deal with VCALENDAR components also (fixes bug #5140) + + * gui/e-week-view.c (selection_received_cb): ditto + + * cal-client/cal-client.c (cal_client_update_object): check the return + value from cal_component_get_as_string and don't call + GNOME_Evolution_Calendar_Cal_updateObjects if NULL + +2001-07-25 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/comp-editor.c (pixmaps): used the new print preview icon. + + * gui/print.c (range_selector_new): changed the 'Current day/week...' + strings to 'Selected day/week...' to make a little less confusing. + Fixes bug #5451. + +2001-07-25 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/meeting-page.c (is_duplicate): see if the address is + already in the list of attendees + (duplicate_error): throw up an error dialog + (popup_delegate_cb): if the attendee has already delegated, delete + the old delegatee + (value_at): cast to kill warnings + (append_row): don't add the new attendee if they are already in + the list + +2001-07-24 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/recurrence-page.c (get_exception_string): calculate + tmp_tm.tm_wday ourselves. strftime has a habit of crashing if you + have weird values here. I think this fixes bug #4574. + +2001-07-24 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/meeting-page.c (value_at): stip the delto and + delfrom + (popup_delegate_cb): show a delegate dialog and add the new + delegatee and update the delegator + (add_section): listen for changes in a more direct manner + (get_select_name_dialog): add_section now takes a limit argument + + * gui/dialogs/e-delegate-dialog.[hc]: New dialog to query the user + for a person to delegate to + + * gui/dialogs/Makefile.am: build/install new files + + * gui/Makefile.am: add ldadd line for ebook + +2001-07-21 Damon Chaplin <damon@ximian.com> + + * gui/e-week-view-event-item.c (e_week_view_event_item_draw): fixed + the test to see whether we should draw the icons. + +2001-07-22 Ettore Perazzoli <ettore@ximian.com> + + * gui/component-factory.c (get_local_file_name_for_folder_type): + New helper function. + (remove_folder): Add a @type arg and handle it, by deleting + "tasks.ics" instead of "calendar.ics" if the type is "tasks". If + the type is not "tasks" or "calendar", report an + `UNSUPPORTED_TYPE' error. + (xfer_folder): Likewise. + +2001-07-21 Ettore Perazzoli <ettore@ximian.com> + + * gui/component-factory.c: Make folders of type "calendar" and + "tasks" user-creatable by setting `user_creatable' to %TRUE in the + `EvolutionShellComponentFolderType's. + +2001-07-19 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/event-editor.h (event_editor_update_widgets): + Removed unused prototype. + + * gui/dialogs/task-editor.h (task_editor_update_widgets): + Likewise. + +2001-07-19 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (clean_up): free various data related + settings + (destroy): use cleanup and unref the clients + (e_itip_control_set_data): clean up before setting the data and + store the timezones in a top level component + (update_item): use cal_client_update_objects and our top level + (including the timezones) + +2001-07-19 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/comp-editor.c (pixmaps): + * gui/calendar-commands.c (pixmaps): updated to use new print icon. + +2001-07-17 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/recurrence-page.c (init_widgets): don't show the time + in the EDateEdit widget for adding EXDATEs. + + * cal-util/cal-component.c (cal_component_alarm_set_trigger): don't + set t.time.is_date to -1. It is a boolean flag, 0 or 1. We probably + don't want a date value, so we leave it at 0. + +2001-07-18 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-day-view-main-item.c (e_day_view_main_item_draw_day_event): + do not discard drawing icon if mask is NULL + + * gui/e-day-view-top-item.c (e_day_view_top_item_draw_long_event): + ditto + +2001-07-17 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (get_next): find the next displayable + component + (get_prev): find the previous displayable component + (e_itip_control_set_data): use above + (prev_clicked_cb): ditto + (next_clicked_cb): ditto + +2001-07-17 Federico Mena Quintero <federico@ximian.com> + + Really fixes #4380. The previous fix was necessary but not + sufficient; it worked for me because my system timezone happens to + match the Evolution timezone --- if they don't match, the bug + would persist. Not matching is *not* an error; it is just a + matter of Unix sucking a lot and XST not being finished :) + + * cal-util/timeutil.c (time_to_gdate_with_zone): New function. We + cannot use g_date_set_time() anymore because it does not take + timezones into account. + + * gui/gnome-cal.c (get_days_shown): Use the function above. + + * gui/e-day-view.c (e_day_view_find_work_week_start): Likewise. + + * gui/e-week-view.c (e_week_view_set_selected_time_range): Likewise. + +2001-07-17 Jon Trowbridge <trow@ximian.com> + + * gui/dialogs/meeting-page.c (invite_entry_changed): Print + a g_message when the list of invited people changes + in the SelectNames control. + (add_section): #if 0/#endif out some (broken?) code. + (get_select_name_dialog): Listen for changes in the + SelectNames control. + +2001-07-17 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/e-timezone-dialog.c (e_timezone_dialog_destroy): destroy + the dialog widget here. Fixes bug #4198. + +2001-07-16 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/task-page.c (task_page_fill_widgets): + * gui/dialogs/event-page.c (event_page_fill_widgets): try to use + builtin timezones before getting them from the server. When creating + new events/tasks the timezones may not be on the server. + + * gui/dialogs/event-page.c (event_page_fill_widgets): for all-day + events we subtract a day from the end date rather than add it. + + * gui/dialogs/e-timezone-dialog.c (on_map_leave): ignore the event + if it isn't a GDK_CROSSING_NORMAL event. For some reason we are getting + leave events when the button is pressed, which meant that selecting + timezones in the map didn't work. + + * gui/dialogs/comp-editor-util.c (comp_editor_dates): + * gui/print.c (print_date_label): only free icaltimetype if not NULL. + +2001-07-12 Taylor Hayward <taylorhayward@yahoo.com> + + * gui/goto-dialog.glade: + * gui/meeting-mockup.glade: + * gui/alarm-notifyålarm-notify.glade: + * gui/dialogs/alarm-page.glade: + * gui/dialogs/meeting-page.glade: + * gui/dialogs/recurrence-page.glade: Added missing underlined + shortcuts. + +2001-07-12 JP Rosevear <jpr@ximian.com> + + * cal-util/cal-util.h: new proto + + * cal-util/cal-util.c (cal_util_new_top_level): standard place to + get your top level calendar component + + * pcs/cal-backend-file.c (create_cal): use it + + * gui/itip-utils.c (itip_send_comp): ditto + + * gui/e-calendar-table.c (e_calendar_table_copy_clipboard): ditto + +2001-07-12 JP Rosevear <jpr@ximian.com> + + * gui/e-calendar-table.c (e_calendar_table_copy_clipboard): fix + typo breaking compilation + + * gui/dialogs/meeting-page.c: fix include + + * gui/dialogs/Makefile.am: build select names idl here + + * gui/Makefile.am: remove select names compilation from here + +2001-07-12 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/task-details-page.c (task_details_page_set_dates): + guard against infinite loops with the updating boolean, fixes 4270 + +2001-07-12 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-calendar-table.c: added support for multiple selections in + cut/copy/paste. Also, it's now ready for the + s/update_object/update_objects change (I think) + +2001-07-11 Damon Chaplin <damon@ximian.com> + + * idl/evolution-calendar.idl: renamed updateObject to updateObjects + and removed the UID argument, since it can add/update multiple objects + at once. (It can't yet, but it will!) + + * pcs/cal.c: + * pcs/cal-backend.[hc]: + * pcs/cal-backend-file.c: renamed update_object to update_objects and + got rid of the UID arg. + + * cal-client/cal-client.c (cal_client_update_objects): new function to + add/update multiple objects in one go, i.e for iTIP and for importing + calendars. + + * gui/print.c (print_date_label): fixed type bug. + + * gui/e-week-view.[hc]: + * gui/e-week-view-event-item.c: draw the timezone icons if the event's + DTSTART or DTEND is in a different timezone to the current one. + Note that we may want to change this so it compares the UTC offsets + rather than the TZIDs, since currently it will draw the icons for all + events coming from iTIP requests from other clients. + +2001-07-11 Federico Mena Quintero <federico@ximian.com> + + Fixes bug #4380 as well as some leftovers from the days of struct + tm and some uninitialized values. + + * gui/gnome-cal.c + (gnome_calendar_on_date_navigator_selection_changed): Initialize + the icaltimetype structures completely. + (gnome_calendar_init): Do not reset priv->zone to NULL here, since + it was set by gnome_calendar_update_config_settings() from + setup_widgets(). + + * gui/calendar-model.c (set_completed): Do not set is_daylight. + + * gui/e-day-view.c (e_day_view_convert_grid_position_to_time): + Likewise. + + * gui/e-week-view.c (e_week_view_set_timezone): Likewise. + + * cal-util/cal-recur.c (generate_instances_for_chunk): Likewise, + and initialize start_tt and end_tt completely. + + * cal-util/timeutil.c (time_year_begin_with_zone): Likewise. + (time_month_begin_with_zone): Likewise. + (time_week_begin_with_zone): Likewise. + (time_day_begin_with_zone): Likewise. + (time_day_end_with_zone): Likewise. + (time_from_isodate): Likewise. + + * gui/dialogs/task-page.c (task_page_fill_component): Initialize + icaltime before using it. + + * gui/dialogs/event-page.c (event_page_fill_component): Likewise. + + * gui/dialogs/recurrence-page.c (simple_recur_to_comp): Removed an + unused icaltimetype. + + * gui/dialogs/task-details-page.c + (task_details_page_fill_component): Initialize icaltime before + using it. + +2001-07-11 JP Rosevear <jpr@ximian.com> + + * gui/component-factory.c: fix the calendar not exiting with a + gross hack because i don't have time to fix the ref counting right + now + +2001-07-11 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/meeting-page.c: be careful about adding and + stripping MAILTO:'s properly + + * gui/dialogs/meeting-page.etspec: add missing columns + + * gui/itip-utils.c (itip_strip_mailto): point to the real start of + the email address + + * gui/itip-utils.h: add proto + + * gui/itip-control-factory.c: get rid of the my address property + + * gui/e-itip-control.c: use the users real identity to figure out + which attendee they are + (find_my_address): figure out who the user is among the attendees + + * gui/e-itip-control.h: remove protos + + * gui/dialogs/Makefile.am: extra dist etspecs + + * gui/Makefile.am: ditto + +2001-07-11 Kjartan Maraas <kmaraas@gnome.org> + + * gui/e-calendar-table.c: Added a hack to get the last + string translated since xml-i18n-tools doesn't recognize + _click-to-add-message="Click here to add a task". + +2001-07-10 Peter Williams <peterw@ximian.com> + + * gui/Makefile.am (BUILT_SOURCES): Move this higher so that + Makefile properly depends on us. Fixes distcheck. + +2001-07-11 Jason Leach <jleach@ximian.com> + + [Fix bug #4389: ETableSpecification still in e-calendar-table.c + file] + + * gui/e-calendar-table.etspec: New file containing the spec that + was in e-calendar-table.c as a big string. + + * gui/e-calendar-table.c (e_calendar_table_init): Use the spec + file instead of a string. + (e_calendar_table_get_spec): Removed this function, we don't need + it anymore. + + * gui/e-tasks.c (e_tasks_setup_menus): Don't load from string, + from file instead. + + * gui/Makefile.am: Necessary changes to get the new .etspec file + installed. + +2001-07-10 Jason Leach <jleach@ximian.com> + + [Fix bug #4388: ETableSpecification still in meeting-page.c file] + + * gui/dialogs/meeting-page.etspec: New file containing the spec + that was previously in meeting-page.c as a string. + + * gui/dialogs/meeting-page.c: One line change to get it to use + this spec file instead of a string. + + * gui/dialogs/Makefile.am: Necessary changes to get the new + meeting-page.etspec installed. + +2001-07-10 Damon Chaplin <damon@ximian.com> + + * gui/calendar-model.c: + * gui/e-calendar-table.c: + * gui/e-day-view-main-item.c: + * gui/e-day-view-top-item.c: + * gui/e-day-view.[hc]: + * gui/e-week-view.c: + * gui/gnome-cal.c: + * gui/print.c: + * gui/dialogs/cal-prefs-dialog.c: + * gui/dialogs/comp-editor-util.c: + * gui/dialogs/event-page.c: + * pcs/cal-backend-file.c: + * pcs/query.c: + * cal-util/cal-component.[hc]: + * cal-util/cal-recur.c: + * cal-util/timeutil.[hc]: + * cal-client/cal-client.[hc]: more timezone updates. I'm pretty much + done with the calendar code now, except for alarms and conduits, + which Federico and JP know more about. And there are a couple of + other minor things to fix. But it is still pretty buggy. + +2001-07-10 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/meeting-page.c: Add popup support so you can delete + users from the list + + * gui/dialogs/comp-editor.c (setup_widgets): fix typo + +2001-07-10 Federico Mena Quintero <federico@ximian.com> + + * gui/alarm-notify/alarm-queue.c (alarm_trigger_cb): Handle the + different alarm actions. + (display_notification): Do the alarm notification dialog here. + + * gui/alarm-notify/alarm-notify-dialog.c (make_heading): Take in a + CalComponentVType, not a whole component. + (alarm_notify_dialog): Take in a CalComponentVType and the final + message instead of generating it ourselves. + +2001-07-09 Federico Mena Quintero <federico@ximian.com> + + * pcs/cal-backend-file.c (generate_alarms_for_comp): Pass the + parent vCalendar component as the timezone closure of + cal_recur_generate_instances(). + + * gui/dialogs/alarm-page.c (get_alarm_string): Make the string + consistent with the option menu text. + (get_alarm_string): Removed extra spaces from the last part of the + alarm string. + +2001-07-09 Federico Mena Quintero <federico@ximian.com> + + * gui/e-day-view.c (e_day_view_key_press): Use + e_utf8_from_gtk_event_key() so that we can input utf8 text + properly. + (e_day_view_cut_clipboard): Constify. + (e_day_view_on_cut): Constify. + (e_day_view_reshape_long_event): Remove unused variable. + + * gui/e-week-view.c (e_week_view_key_press): Use + e_utf8_from_gtk_event_key() so that we can input utf8 text + properly. + (e_week_view_cut_clipboard): Constify. + (e_week_view_on_cut): Constify. + + * cal-client/cal-client.c (cal_client_resolve_tzid_cb): Fix the + prototype so that this matches CalRecurResolveTimezoneFn. Also + renamed it so that it is clear that it is supposed to be a + callback. + +2001-07-06 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/meeting-page.c (init_widgets): connect to the entry + not the combo + + * gui/dialogs/event-editor.c (set_menu_sens): set menu + sensitivities based on whether or not the meeting page is shown + (event_editor_init): call above + (event_editor_edit_comp): ditto + (schedule_meeting_cmd): ditto + + * gui/dialogs/comp-editor.h: new proto + + * gui/dialogs/comp-editor.c (comp_editor_set_ui_prop): new + function to allow for set of ui props (esp. "sensitive") + +2001-07-06 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/meeting-page.c (clear_widgets): actually clear some + widgets and hide/show widgets in the default setup + (meeting_page_destroy): destroy the address lists + (meeting_page_fill_widgets): allow the user to select among their + identities as a new organizer, or show the existing organizer as + label + (meeting_page_fill_component): set the "MAILTO:" bit of the + organizer to match spec, set CN properly if we know it + (get_widgets): load new widgets + (other_clicked_cb): handle "Other Organizer" click + (change_clicked_cb): handle "Change Organizer" click + (init_widgets): listen for clicks on new buttons + + * gui/dialogs/comp-editor.c (comp_editor_remove_page): remove the + page from our internal list and unref it + + * gui/itip-utils.c (itip_addresses_get): get the configure mail + identities + (itip_addresses_free): free a list of identities returned by + itip_addresses_get + + * gui/itip-utils.h: remove obsolete protos, and new protos + + * gui/gnome-cal.html: Remove ancient file + +2001-07-04 Federico Mena Quintero <federico@ximian.com> + + Fixes bug #4018 and what would be the analogous bugs for the other + component editors. + + * gui/dialogs/comp-editor-page.h (CompEditorPageClass): New + virtual method "::focus_main_widget()". + + * gui/dialogs/comp-editor-page.c + (comp_editor_page_focus_main_widget): New function. + + * gui/dialogs/comp-editor.c (comp_editor_append_page): If we are + inserting the main page, ask it to focus its main widget. + + * gui/dialogs/alarm-page.c (alarm_page_focus_main_widget): + Implemented. + + * gui/dialogs/event-page.c (event_page_focus_main_widget): + Implemented. + #include "e-util/e-categories-config.h". + + * gui/dialogs/meeting-page.c (meeting_page_focus_main_widget): + Implemented. + + * gui/dialogs/recurrence-page.c + (recurrence_page_focus_main_widget): Implemented. + + * gui/dialogs/task-details-page.c + (task_details_page_focus_main_widget): Implemented. + + * gui/dialogs/task-page.c (task_page_focus_main_widget): + Implemented. + +2001-07-04 Federico Mena Quintero <federico@ximian.com> + + * gui/calendar-commands.c (clear_folder_bar_label): New function. + (calendar_control_activate): Clear the folder bar label; we really + don't have anything interesting to display. + +2001-07-03 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/meeting-page.c: Add new columns for information + specification + (meeting_page_destroy): save the table state + (build_etable): load new table state + + * gui/dialogs/task-editor.c (task_editor_destroy): unref pages + + * gui/dialogs/event-editor.c (event_editor_destroy): unref pages + + * gui/dialogs/comp-editor.c (setup_widgets): kill warning + (comp_editor_append_page): ref page passed in + (close_dialog): unref pages + +2001-07-03 Damon Chaplin <damon@ximian.com> + + * gui/e-day-view.c (query_obj_updated_cb): fix warning, and added + some debug messages. + + * gui/dialogs/comp-editor-util.c (write_label_piece): + * gui/e-day-view-top-item.c (e_day_view_top_item_draw): call mktime() + to set the weekday, though this is a temporary fix. + +2001-07-03 Damon Chaplin <damon@ximian.com> + + * pcs/cal-backend.[hc]: added virtual method to get a VTIMEZONE + component given a TZID. We need this to resolve TZIDs when expanding + an event using cal_recur_generate_instances() in query.c. + + * pcs/cal-backend-file.c (cal_backend_file_get_timezone): implemented + virtual method. + (cal_backend_file_update_object): fixed bug, kind -> child_kind. + + * pcs/query.c (func_occur_in_time_range): use the virtual method for + resolving TZIDs. The other way didn't work anyway, as we didn't have + the entire VCALENDAR with VTIMEZONEs in it. + + * gui/dialogs/recurrence-page.c (init_widgets): + (make_ending_until_special): moved the call to + e_date_edit_set_get_time_callback() from init_widgets to + make_ending_until_special(), since that is where the widget gets + created. + + * gui/e-timezone-entry.c (e_timezone_entry_set_timezone): handle zone + being NULL. + +2001-07-02 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/alarm-options.[ch]: New files with the alarm options + dialog; this configures the repeat/duration properties and the + options specific to each alarm action type. + + * gui/dialogs/alarm-page.c (AlarmPagePrivate): Added the alarm + options button. Also, keep an alarm structure which we are + editing and an alarm options dialog. + (init_widgets): Connect to the options button. + (add_clicked_cb): Clone the component we are editing instead of + creating a new one so that we preserve the data from the alarm + options dialog. + (button_options_clicked_cb): Pop up the alarm options dialog. + + * cal-util/cal-component.c (cal_component_alarm_new): Doh, + initialize the other fields in the new alarm. + +2001-07-03 Damon Chaplin <damon@ximian.com> + + * cal-client/cal-client.[hc] + * cal-util/cal-component.c + * cal-util/cal-recur.[hc] + * cal-util/test-recur.c + * cal-util/timeutil.c + * gui/calendar-config.c + * gui/calendar-model.[hc] + * gui/comp-util.[hc] + * gui/e-calendar-table.c + * gui/e-day-view-main-item.c + * gui/e-day-view-top-item.c + * gui/e-day-view.[hc] + * gui/e-itip-control.c + * gui/e-timezone-entry.[hc] + * gui/e-week-view.[hc] + * gui/gnome-cal.[hc] + * gui/goto.c + * gui/tag-calendar.[hc] + * gui/dialogs/cal-prefs-dialog.c + * gui/dialogs/comp-editor-page.[hc] + * gui/dialogs/comp-editor-util.[hc] + * gui/dialogs/comp-editor.c + * gui/dialogs/e-timezone-dialog.[hc] + * gui/dialogs/event-page.c + * gui/dialogs/meeting-page.c + * gui/dialogs/recurrence-page.c + * gui/dialogs/task-details-page.c + * gui/dialogs/task-details-page.glade + * gui/dialogs/task-page.c + * idl/evolution-calendar.idl + * pcs/cal-backend-file.c + * pcs/cal-backend.c + * pcs/cal-backend.h + * pcs/cal.c + * pcs/query.c: timezone changes everywhere. There's still quite a + few things to update, and its not working well at present. + +2001-07-02 JP Rosevear <jpr@ximian.com> + + * gui/calendar-commands.c (publish_freebusy_cmd): publish + free/busy information for the currently viewed time range + +2001-07-02 Christopher James Lahey <clahey@ximian.com> + + * gui/Makefile.am (INCLUDES): Added $(BONOBO_CONF_CFLAGS). + (evolution_calendar_LDADD): Added $(BONOBO_CONF_LIBS). + +2001-07-02 Federico Mena Quintero <federico@ximian.com> + + Support for ATTACH, DESCRIPTION properties in alarm components. + + * cal-util/cal-component.c (scan_alarm_property): Deal with + ATTACH, DESCRIPTION properties. + (cal_component_alarm_get_attach): New function. Libical is + actually bogus; supposedly icalattachtype structures are + refcounted but the property functions return them by value. + (cal_copmonent_alarm_set_attach): New function. + (cal_component_alarm_get_description): New function. + (cal_component_alarm_set_description): New function. + +2001-07-02 Federico Mena Quintero <federico@ximian.com> + + Support for repeat/duration properties in alarm components. + + * cal-util/cal-component.h (CalAlarmRepeat): New structure that + pairs the repeat/duration values of an alarm component, which must + be set both together or not set at all. + + * cal-util/cal-component.c (CalComponentAlarm): Added fields for + the repeat and duration properties. + (scan_alarm_property): Scan the DURATION and REPEAT properties. + (make_alarm): Nullify/initialize all the fields in the alarm. + (cal_component_alarm_get_repeat): New function. + (cal_component_alarm_set_repeat): New function. + + * gui/dialogs/alarm-page.glade: Changed the label of display + alarms from "Show a dialog" to "Display a message". + +2001-07-02 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/task-details-page.c + (task_details_page_fill_widgets): fill in delegated from field + +2001-07-02 Rodrigo Moya <rodrigo@ximian.com> + + * gui/dialogs/task-page.c (categories_clicked_cb): + * gui/dialogs/event-page.c (categories_clicked_cb): use the new + self-contained e_categories_config_open_dialog_for_entry() function + + * gui/e-week-view-event-item.c (e_week_view_item_draw_icons): + * gui/e-day-view-top-item.c (e_day_view_reshape_long_event): + (e_day_view_reshape_day_event): ditto + * gui/e-day-view-main-item.c (e_day_view_main_item_draw_day_event): + use e_categories_config_get_icon_for() to retrieve the icon + associated with each category + +2001-07-02 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (send_freebusy): implement + + * cal-util/cal-component.c (set_attendee_list): add the delto + property rather than the delfrom property twice + + * gui/dialogs/task-editor.c (task_editor_edit_comp): show + delegation info if appropriate + (delegate_task_cmd): delegate command + (cancel_task_cmd): cancel command + (refresh_task_cmd): refresh command + + * gui/dialogs/task-details-page.c: Load new widgets + (task_details_page_show_delegation): show/hide delegation info widgets + + * gui/dialogs/task-details-page.h: new proto + + * gui/dialogs/event-editor.c (event_editor_edit_comp): free + attendee list when finished + + * gui/dialogs/comp-editor.c (setup_widgets): explicitly show the + widgets, update pixmaps after the verbs have been added + (comp_editor_focus): don't do a show all + +2001-07-02 Federico Mena Quintero <federico@ximian.com> + + Fixes bug #1406. + + * gui/calendar-config.c (config_read): Handle the options for the + task list colors. + (calendar_config_write): Ditto. + (calendar_config_get_tasks_due_today_color): New function. + (calendar_config_set_tasks_due_today_color): New function. + (calendar_config_get_tasks_overdue_color): New function. + (calendar_config_set_tasks_overdue_color): New function. + (calendar_config_configure_e_calendar_table): Use + e_table_model_changed() for the colors. + + * gui/dialogs/cal-prefs-dialog.glade: Updated the options for the + task list and alarms. + + * gui/dialogs/cal-prefs-dialog.c (cal_prefs_dialog_show_config): + Update the task list settings. + (cal_prefs_dialog_update_config): Ditto. + + * gui/calendar-model.c (get_color): Deal with tasks for today as + well as overdue tasks. Make it cleaner, even though we have to + duplicate a chunk of is_overdue(). + + * gui/calendar-commands.c (preferences_cmd): Renamed from + properties_cmd(). + +2001-07-01 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-day-view-main-item.c + (e_day_view_main_item_draw_day_event): draw icons per category + + * gui/e-day-view-top-item.c + (e_day_view_top_item_draw_long_event): draw icons per category + + * gui/e-day-view.c + (e_day_view_reshape_long_event): + (e_day_view_reshape_day_event): calculate space for category icons + + * gui/e-week-view-event-item.c + (e_week_view_event_item_draw_icons): draw icons per category + + * gui/e-week-view.c + (e_week_view_reshape_event_span): calculate space for category icons + +2001-07-01 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-day-view.c (e_day_view_*_clipboard): fixed clibpoard + command activation from the menu entries. CTRL-C and CTRL-X don't + work though, since it seems the key presses are being captured by + the text item + + gui/e-week-view.c (e_week_view_*_clipboard): ditto + +2001-06-30 Federico Mena Quintero <federico@ximian.com> + + * gui/e-week-view-event-item.c + (e_week_view_event_item_button_press): Only set the + pressed_event_num and pressed_span_num if button 1 was pressed. + Fix up return values a bit. This fixes bug #3780. + + * gui/gnome-cal.c + (gnome_calendar_on_date_navigator_selection_changed): Doh, the + call for the day view was supposed to be + gnome_calendar_set_view(), not set_view(). Fixes bug #3779. + +2001-06-30 Rodrigo Moya <rodrigo@ximian.com> + + * gui/tasks-control.c (tasks_control_cut_cmd): call + e_calendar_table_cut_clipboard with the correct object + + (tasks_control_copy_cmd): ditto + + (sensitize_commands): sensitize clipboard commands based on the + number of selected tasks + +2001-06-28 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-calendar-table.[ch] (e_calendar_table_cut_clipboard), + (e_calendar_table_copy_clipboard), + (e_calendar_table_paste_clipboard): new functions for allowing the + execution of clipboard-related commands + + * gui/tasks-control.c (tasks_control_cut_cmd), + (tasks_control_copy_cmd), (tasks_control_paste_cmd): added + callbacks for the new clipboard-related menu entries + +2001-06-28 Rodrigo Moya <rodrigo@ximian.com> + + * gui/component-factory.c: removed not-uses-anymore parameter in + call to evolution_shell_component_new + + * gui/gnome-cal.[ch] (gnome_calendar_cut_clipboard), + (gnome_calendar_copy_clipboard), (gnome_calendar_paste_clipboard): + new functions for allowing execution of clipboard-related commands + + * gui/e-day-view.[ch] (e_day_view_cut_clipboard), + (e_day_view_copy_clipboard), (e_day_view_paste_clipboard): ditto + + * gui/e-week-view.[ch] (e_week_view_cut_clipboard), + (e_week_view_copy_clipboard), (e_week_view_paste_clipboard): ditto + +2001-06-27 Rodrigo Moya <rodrigo@ximian.com> + + * gui/calendar-commands.c (cut_event_cmd), + (copy_event_cmd), (paste_event_cmd): added callbacks for the new + clipboard-related menu entries + +2001-06-27 Ettore Perazzoli <ettore@ximian.com> + + * gui/component-factory.c (factory_fn): Pass NULL as the + @external_uri_schemas argument to + `evolution_shell_component_new()'. + +2001-06-27 Peter Williams <peterw@ximian.com> + + * conduits/*/Makefile.am (INCLUDES): More srcdir != builddir + fixes. + +2001-06-27 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-calendar-table.c (selection_received): fixed + (e_calendar_table_on_copy): fixed + +2001-06-26 Federico Mena Quintero <federico@ximian.com> + + * idl/evolution-calendar.idl (CalAlarmInstance): Renamed the occur + field to occur_start; added an occur_end field. This way we can + present the complete times for the occurrence from the server. + + * cal-util/cal-component.h (CalAlarmInstance): Likewise. + + * pcs/cal-backend-file.c (add_alarm_occurrences_cb): Fill the new + fields appropriately. + (generate_absolute_triggers): Likewise; we use -1 in case the + component has no DTSTART or DTEND because there are no meaningful + occurrence dates here. + (fill_alarm_instances_seq): Fill in the new fields. + + * cal-client/cal-client.c (build_alarm_instance_list): Likewise. + + * gui/alarm-notify/alarm-notify-dialog.c (alarm_notify_dialog): + Take in both the occur_start and occur_end times. + + * gui/goto.c (goto_dialog): Free the dlg structure on the bail-out + cases. + + * gui/dialogs/event-page.c (get_widgets): Do not assert if we + cannot find the main widget; just return FALSE. + + * gui/dialogs/alarm-page.c (get_widgets): Likewise. + + * gui/dialogs/task-page.c (get_widgets): Likewise. + + * gui/dialogs/task-details-page.c (get_widgets): Likewise. + + * gui/dialogs/meeting-page.c (get_widgets): Likewise. + +2001-06-25 Peter Williams <peterw@ximian.com> + + * conduits/calendar/Makefile.am (INCLUDES): Fixes for + srcdir != builddir. Link to the static libwombat. + + * conduits/todo/Makefile.am (INCLUDES): Here too. + +2001-06-24 Federico Mena Quintero <federico@ximian.com> + + * gui/alarm-notify/notify-main.c (main): Initialize libglade. + + * pcs/cal-backend-file.c (compute_alarm_range): + icaldurationtype_as_int() will now return a negative value if + dur->is_neg is true, so we need to flip the sign of some + operations here. + (add_alarm_occurrences_cb): Likewise. + + * pcs/cal-backend-db.c (compute_alarm_range): Likewise. + (add_alarm_occurrences_cb): Likewise. + +2001-06-24 Federico Mena Quintero <federico@ximian.com> + + * gui/alarm-notify/alarm-notify.c: Converted to use BonoboXObject. + + * gui/gnome-cal.c (gnome_calendar_open): Ask the alarm + notification service to add the calendar and tasks URIs. + (add_alarms): New function. + + * gui/alarm-notify/notify-main.c (main): Doh, fixed typo in the + OAFIID. + (main): Initialize and shut down gnome-vfs. + + * gui/Makefile.am (IDLS): Added evolution-calendar.idl, sigh. + (evolution_calendar_SOURCES): Added the files generated from the IDL. + + * gui/alarm-notify/alarm-queue.c (alarm_trigger_cb): New function + used when an alarm is triggered. + + * gui/dialogs/Makefile.am: Removed the alarm-notify-dialog files; + they are now in gui/alarm-notify. + + * gui/alarm-notify/Makefile.am: Added the alarm-notify-dialog + files. + + * pcs/cal.c (cal_forget_password): This was incorrectly named + cal_client_forget_password(); renamed it. + + * gui/main.c (main): Initialize and shut down gnome-vfs. + +2001-06-23 Federico Mena Quintero <federico@ximian.com> + + * gui/e-calendar-table.c (task_compare_cb): New function to + compare tasks like the Pilot task list. + + * cal-util/cal-component.h (CalComponentField): Added a + semi-hackish CAL_COMPONENT_FIELD_COMPONENT. In the ETable model, + it is intended to return a pointer to the component itself. + + * gui/calendar-model.c (calendar_model_value_at): Return the + component itself for CAL_COMPONENT_FIELD_COMPONENT. Be more + paranoid about invalid columns. + (calendar_model_set_value_at): Be more paranoid about invalid + columns. + (calendar_model_duplicate_value): Ref the component field. + (calendar_model_initialize_value): Deal with the component field. + (calendar_model_value_is_empty): Likewise. + (calendar_model_value_to_string): Likewise. + +2001-06-22 Jeffrey Stedfast <fejj@ximian.com> + + * gui/Makefile.am: Added itip-control-factory.* to the build. + +2001-06-22 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal.[ch] (cal_get_password): new function for the backends to + be able to call the getPassword method on the associated + WombatClient + (cal_forget_password): ditto for the forgetPassword method + +2001-06-22 Rodrigo Moya <rodrigo@ximian.com> + + * idl/evolution-calendar.idl: changed getFreeBusy method to return + a CalObj instead of a sequence + + * cal-client/cal-client.[ch] (cal_client_get_free_busy): changed it to + work like the cal_client_get_object function, that is, it does not + return anymore a list of UIDs, but a CalClientGetStatus code, and + added a new parameter for the caller to get the component back when + this function returns + (cal_client_open): aggregate WombatClient interface to the CalListener + being used + + * pcs/cal-backend-db.c, pcs/cal-backend-file.c (..get_free_busy): set + return value to "char *" as it will be returning a FreeBusy object, + and not a list of UIDs + + * pcs/cal-backend.[ch] (cal_backend_get_free_busy): ditto + + * pcs/cal.c (cal_construct): queryInterface on the listener to obtain + the WombatClient interface + +2001-06-21 JP Rosevear <jpr@ximian.com> + + * gui/main.c (main): update to new call + + * gui/e-itip-control.[hc]: break the widget bits out on their own + into a proper object, basic stuff seems to be working again + + * gui/itip-control-factory.c: put the control specific bits here + from e-itip-control.c + + * gui/itip-control-factory.h: new header + +2001-06-21 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/Makefile.am (gladedir): add include path + + * gui/dialogs/comp-editor.c (setup_widgets): remove buttons and + use evolution's standard ui config + + * gui/print.c (print_comp_item): print description text + +2001-06-21 Rodrigo Moya <rodrigo@ximian.com> + + * cal-client/cal-client.[ch]: + (cal_client_init): create a WombatClient when creating a CalClient + object, so that we can receive authentication notifications from + the wombat + (cal_client_destroy): destroy the WombatClient object when dying + (cal_client_set_auth_func): new function to set the authentication + function to be called when a password is required by the calendar + server (through the WombatClient object) + (cal_client_get_free_busy): new function for calling the new IDL + method Cal::getFreeBusy + + * gui/alarm-notify/Makefile.am: add libwombat to LDADD + + * gui/Makefile.am: add libwombat to LDADD + +2001-06-20 Dave Camp <dave@ximian.com> + + * gui/itip-utils.c (itip_send_comp): Changed attach_data + to be a GNOME_Evolution_Composer_AttachmentData rather than a + CORBA_char*. + +2001-06-20 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/comp-editor.c (print_cmd): print menu command + (print_preview_cmd): ditto for print preview + (print_setup_cmd): ditto for print setup + (comp_editor_set_cal_client): listen for updated and removed + signals + (obj_updated_cb): if the item changes else where, query the user + for the course of action + (obj_removed_cb): ditto for removal + + * gui/print.c (print_setup): rudimentary page setup support + (print_comp): rudimentary individual event/task printing support + + * gui/print.h: new protos + + * gui/dialogs/changed-comp.[hc]: dialog to query the user about + what to do when a item is changed elsewhere + + * gui/dialogs/Makefile.am: build new files + + * gui/dialogs/send-comp.c (send_component_dialog): remove useless + assignment + +2001-06-20 Rodrigo Moya <rodrigo@ximian.com> + + * idl/evolution-calendar.idl: added getFreeBusy method + + * pcs/cal.c (impl_Cal_get_free_busy): implementation of the new + getFreeBusy added method + + * pcs/cal-backend.[ch]: added new virtual method to the CalBackend + class (get_free_busy) + + * pcs/cal-backend-db.c (cal_backend_db_get_free_busy): new function, + not implemented yet + + * pcs/cal-backend-file.c (cal_backend_file_get_free_busy): new funtion, + not implemented yet + +2001-06-20 Damon Chaplin <damon@ximian.com> + + * gui/calendar-config.[hc]: + * gui/gnome-cal.[hc]: + * gui/tasks-control.c (tasks_control_activate): + * gui/calendar-commands.c (calendar_control_activate): moved the + function to check for a default timezone to calendar-config.c, and + also used it in the tasks control. + + * gui/dialogs/e-timezone-dialog.h: #include <gtk/gtkwidget.h> fix. + +2001-06-20 Damon Chaplin <damon@ximian.com> + + * gui/calendar-commands.c (calendar_control_activate): + * gui/gnome-cal.[hc]: added code to show the timezone dialog if the + user hasn't set a default timezone yet. + + * gui/dialogs/e-timezone-dialog.c (e_timezone_dialog_add_timezones): + set the "None" item string before adding it to the combo, to stop the + combo putting "None" in the entry initially. + +2001-06-19 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-calendar-table.[ch]: added cut/copy/paste support. It works + with single selections (a single component selected) and with + multiple ones (several components selected) + +2001-06-19 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/event-page.c: if the timezones of the start and end of + the event are the same, then if the start timezone is changed we + change the end timezone as well, since that is what most users will + want. + +2001-06-19 Damon Chaplin <damon@ximian.com> + + * pcs/cal.c: + * idl/evolution-calendar.idl: + * cal-client/cal-client.[hc]: removed stuff to get builtin timezone + info from the server. + +2001-06-19 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/cal-prefs-dialog.c: added a 'Time zone' setting. Also + rearranged a little, adding a new 'General' page, since we had too + many settings on the 'Calendar' page. + + * gui/e-timezone-entry.[hc]: + * gui/dialogs/e-timezone-dialog.[hc]: + * gui/dialogs/comp-editor.c: + * gui/dialogs/comp-editor-page.[hc]: + * gui/dialogs/event-page.c: + * gui/dialogs/task-details-page.c: + * gui/dialogs/task-page.c: removed CalClient stuff. The timezone dialog + now uses the timezone data directly from the client's libical library. + +2001-06-19 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/task-editor.c (task_editor_init): add ui + (forward_cmd): implement forward command + + * gui/dialogs/comp-editor.c (save_as_ok): bug fix, seems to work + now + +2001-06-19 JP Rosevear <jpr@ximian.com> + + * gui/control-factory.c (control_factory_init): add auto exit unref + + * gui/component-factory.c (destroy_cb): destroy our selves if we + have no more shells + (component_factory_init): add auto exit unref + +2001-06-19 JP Rosevear <jpr@ximian.com> + + * gui/Makefile.am: don't compile or install the old meeting edit + stuff + + * gui/e-week-view.c: ditto + + * gui/e-day-view.c: Remove scheduling menu option + +2001-06-19 JP Rosevear <jpr@ximian.com> + + * gui/itip-utils.c: add some needed commas + (itip_send_comp): if publishing, don't set the to list and show + the message. unless publishing, just send the email + + * gui/Makefile.am: remove typo + +2001-06-19 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/send-comp.c: itip/imip send dialog + + * gui/dialogs/send-comp.h: new proto + + * gui/dialogs/recurrence-page.c (recurrence_page_set_dates): only + use the weekday picker if visible + + * gui/dialogs/meeting-page.c: just show the meeting list + + * gui/dialogs/event-editor.c (event_editor_edit_comp): remove the + meeting page if no attendees + (schedule_meeting_cmd): schedule a meeting menu item + (refresh_meeting_cmd): refresh meeting request menu item + (cancel_meeting_cmd): ditto for cancel + (forward_cmd): send as attachment + + * gui/dialogs/comp-editor.c (comp_editor_remove_page): remove page + from dialog + (comp_editor_show_page): show a given page + (comp_editor_get_current_comp): return a cal component + representing the current widget state + (comp_editor_save_comp): save the cal component + (comp_editor_delete_comp): delete the cal component + (comp_editor_send_comp): send the cal component + (comp_editor_merge_ui): merge xml in to the bonobo gui + (setup_widgets): use a bonobo window instead of a gtk window, add menus again + (save_as_cmd): save to file on disk - still broken + (save_close_cmd): close menu command + (save_close_cmd): save and close menu command + + * gui/dialogs/comp-editor.h: new protos + + * gui/dialogs/cancel-comp.c (cancel_component_dialog): itip/imip + cancellation dialog + + * gui/dialogs/cancel-comp.h: new proto + + * gui/dialogs/Makefile.am: build new files + + * gui/dialogs/comp-editor-page.c + (comp_editor_page_notify_needs_send): emit needs_send signal + + * gui/dialogs/comp-editor-page.h: new signal protos + + * gui/itip-utils.c (itip_send_comp): new function to send cal + components + + * gui/itip-utils.h: new proto + + * gui/e-itip-control.c (pstream_load): trim using cal-component + wrapper stuff + (accept_button_clicked_cb): use itip_send_comp + (tentative_button_clicked_cb): ditto + (decline_button_clicked_cb): ditto + + * gui/Makefile.am: compile select name idl stuff + + * cal-util/cal-component.c (cal_component_get_organizer): get the organizer + (cal_component_set_organizer): set the organizer + (cal_component_get_recurid): get the recurrence id + (cal_component_set_recurid): set the recurrence id + (set_attendee_list): actually set the attendee list + (get_attendee_list): build the attendee list + + * cal-util/cal-component.h: new protos + +2001-06-19 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/task-details-page.glade: + * gui/dialogs/task-page.glade: + * gui/dialogs/event-page.glade: added timezone fields. Also moved the + 'All Day' flag into an alignment so it doesn't mess up the height of + the other widgets. + + * gui/dialogs/task-details-page.c: + * gui/dialogs/task-page.c: + * gui/dialogs/event-page.c: added code to handle the timezone fields. + This still needs to be hooked up when the libical code is finished. + + * gui/dialogs/e-timezone-dialog.c (on_map_leave): new function to + clear the preview label and turn off the highlighted point on the + map when you move the mouse outside it. + (find_selected_point): new function to try to find the point + corresponding to the text in the combo. + (on_combo_changed): call the above function to update the selected + point. + (on_map_leave): turn off the preview point & label when the mouse + leaves the map. + (e_timezone_dialog_set_cal_client): changed it so that selecting "None" + clears the entry. + + * gui/dialogs/comp-editor-page.[hc]: added set_cal_client() virtual + method since some pages need to access the CalClient to get timezone + information. Also added comp_editor_page_set_cal_client() to call + the virtual method. + + * gui/dialogs/comp-editor.c (comp_editor_set_cal_client): called + comp_editor_page_set_cal_client() on each page. + + * gui/calendar-config.c: added functions to get & set the timezone. + +2001-06-18 Eskil Heyn Olsen <eskil@eskil.dk> + + * conduits/calendar/calendar-conduit.c: (comp_from_remote_record), + (check_for_slow_setting), (conduit_get_gpilot_conduit): + * conduits/todo/todo-conduit.c: (check_for_slow_setting), + (conduit_get_gpilot_conduit): + Tweaked for some gnome-pilot api changes + +2001-06-15 Federico Mena Quintero <federico@ximian.com> + + * gui/calendar-view.[ch]: New files with the generic calendar view + object. It sucks that we have to implement at least two classes + to define a GalView and its factory. + + * gui/calendar-view-factory.[ch]: New files; factory for calendar + views. + + * gui/gnome-cal.h (GnomeCalendarViewType): Moved from gnome-cal.c + and renamed from ViewType. We no longer use strings to identify + the view types. + + * gui/gnome-cal.c (gnome_calendar_get_view_type): New function. + (set_view): Renamed from gnome_calendar_set_view_internal(). + (gnome_calendar_set_query): Made public; renamed from set_query(). + (gnome_calendar_setup_view_menus): New function to set up the view + collection and the GalViewMenus. + (gnome_calendar_discard_view_menus): New function to discard them. + + * gui/calendar-commands.c (calendar_control_activate): Set up the + GalView menus. + (calendar_control_deactivate): Discard the GalView menus. + + * gui/e-day-view.c: #include <gtk/gtkinvisible.h> + + * gui/dialogs/comp-editor.c (comp_editor_get_type): The type info + structure should be static. + +2001-06-15 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-day-view.c (selection_received): generate a new UID + when pasting + + * gui/e-week-view.c (selection_received): ditto + +2001-06-15 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-day-view.c (selection_received): finished implementation + of Paste stuff + + * gui/e-week-view.c (selection_received): ditto + +2001-06-14 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-day-view.[ch]: added popup menu items for cut/copy/paste + + * gui/e-week-view.[ch]: ditto + +2001-06-14 Damon Chaplin <damon@ximian.com> + + * gui/e-timezone-entry.[hc]: new widget to enter a timezone. + + * gui/Makefile.am (evolution_calendar_SOURCES): added the above. + * gui/Makefile.am (evolution_calendar_LDADD): had to move + libcal-dialogs.a above libmiscwidgets.a to get it to compile. + +2001-06-14 Damon Chaplin <damon@ximian.com> + + * gui/dialogs/e-timezone-dialog.[hc]: + * gui/dialogs/e-timezone-dialog.glade: new dialog for setting the + time zone. + + * gui/dialogs/Makefile.am: added timezone dialog files. + + * idl/evolution-calendar.idl: added CalTimezoneInfo struct and seq, + and getBuiltinTimezoneInfo method. + + * pcs/cal.c (impl_Cal_get_builtin_timezone_info): implemented method. + (cal_class_init): added method to epv. + + * cal-client/cal-client.c (struct CalClientPrivate): added + timezone_info array to contain cached info on builtin timezone city + names and coordinates. + (cal_client_get_builtin_timezone_info): new function to get the info + about builtin timezones. + + * cal-client/cal-client.h: added CalTimezoneInfo struct, to contain + the city names and coords of the builtin timezones. + +2001-06-13 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/comp-editor-util.c (comp_editor_date_label): remove + unnecessary space + + * gui/dialogs/task-page.c (task_page_set_summary): indicate we are + updating, Fixes #3307 + +2001-06-13 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/task-details-page.c (task_details_page_set_dates): + set the completed time in the date editor if appropriate + + * gui/dialogs/task-page.c (task_page_set_dates): if we are + updating, return + (complete_date_changed): don't returns if we are updating - the + guards are done in the calling function + (status_changed): indicate when we are updating and when we are + finished, round the completion time to the nearest minute + (percent_complete_changed): indicate when are updating and when we + are finished + (percent_complete_changed): notify of the date change after the + option menu is updated + +2001-06-11 Rodrigo Moya <rodrigo@ximian.com> + + * gui/e-day-view.[ch]: added cut&paste support, by using a GtkInvisible + widget to manage the clipboard selections. + + * gui/e-week-view.[ch]: ditto + +2001-06-08 Iain Holmes <iain@ximian.com> + + * gui/component-factory.c: Removed the executive-summary includes. + (component_factory_init): Don't init the summary factory. + + * gui/calendar-summary.[ch]: Removed. + + * gui/Makefile.am: Remove executive-summary stuff, move some libs + around a bit. + +2001-06-04 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/recurrence-page.c (recurrence_page_set_dates): + update the blocked/selected days if the starting day of the + appointment changes, fixes #2188 + + * gui/dialogs/task-details-page.h: tidy proto + +2001-06-03 Ettore Perazzoli <ettore@ximian.com> + + * gui/e-itip-control.c: #include <bonobo/bonobo-context.h> instead + of <bonobo/bonobo-running-context.h>. + * gui/tasks-control-factory.c: Likewise. + + * gui/Makefile.am (evolution_calendar_LDADD): Move `$(DB3_LDADD)' + before libeutil. + +2001-06-01 JP Rosevear <jpr@ximian.com> + + * gui/Makefile.am: no longer build widget-util.*, the code has + been moved + +2001-06-01 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/event-page.c (make_date_edit): use new func + + * gui/dialogs/task-details-page.c + (task_details_page_create_date_edit): ditto + + * gui/dialogs/recurrence-page.c (make_ending_until_special): ditto + + * gui/dialogs/comp-editor-util.c (comp_editor_new_date_edit): + rename date_edit_new function + + * gui/dialogs/comp-editor-util.h: new proto + + * gui/dialogs/task-page.c (task_page_set_summary): no longer any + need to block/unblock the handler + (task_page_create_date_edit): use new func + +2001-06-01 JP Rosevear <jpr@ximian.com> + + * gui/.cvsignore: Update + + * gui/evolution-calendar-control.c: Remove dead file + + * gui/*.vcf: Remove dead files + +2001-06-01 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/comp-editor-page.[hc]: renamed from editor-page for + consistency, more complete implementation + + * gui/dialogs/comp-editor.[hc]: More complete implementation + + * gui/dialogs/*-page.*: The various pages needed to construct the + event and task dialogs + + * gui/dialogs/comp-editor-util.[hc]: useful utility functions for the + component editor pages to use + + * gui/dialogs/Makefile.am: Build and install new files + + * gui/event-editor*: Remove, obsoleted by the new comp-editor + stuff + + * gui/dialogs/task-editor-dialog.glade: ditto + + * gui/e-calendar-table.c (open_task): update to use comp editor + stuff + + * gui/e-tasks.c (e_tasks_new_task): ditto + + * gui/gnome-cal.c (gnome_calendar_edit_object): ditto + + * gui/Makefile.am: don't build non-existent files nor try to + install them + +2001-06-01 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (e_itip_control_factory_init): ditto + + * gui/tasks-control-factory.c (tasks_control_factory_init): + auto_exit_unref the factory + +2001-06-01 Ettore Perazzoli <ettore@ximian.com> + + * gui/Makefile.am (evolution_calendar_LDADD): Add `$(DB3_LDADD)'. + +2001-05-29 Federico Mena Quintero <federico@ximian.com> + + * gui/e-tasks.c (e_tasks_get_calendar_table): New function. + + * gui/tasks-control.c (tasks_control_activate): Connect to the + "selection_changed" signal of the tasks widget here, not in + tasks_control_new(). Also, update the sensitivity of the commands + here for the first time. + (tasks_control_deactivate): Disconnect from the signal here since + it only makes sense to monitor selection changes while the control + is active. + (selection_changed_cb): Removed hack that tested the presence of + the remote UI container. + (sensitize_commands): New function. + +2001-05-28 Damon Chaplin <damon@ximian.com> + + * gui/e-week-view-layout.[hc]: + * gui/e-day-view-layout.[hc]: new files to contain layout code split + off from EDayView an EWeekView, so we can use it for printing. + + * gui/print.c: rewritten to use the same layout code as the EDayView + and EWeekView widgets. + + * gui/gnome-cal.c (gnome_calendar_get_task_pad_cal_client): added + function so we can get the CalClient used for the TaskPad for printing. + + * gui/Makefile.am (evolution_calendar_SOURCES): added + e-day-view-layout.[hc] amd e-week-view-layout.[hc]. + + * cal-util/timeutil.c (time_week_begin): + (time_week_end): added week_start_day argument. + + * cal-util/cal-recur.c: added comments describing problems in it. + +2001-05-27 Rodrigo Moya <rodrigo@ximian.com> + + * gui/component-factory.c (remove_folder): implemented the + 'remove_folder' function for the calendar shell component + (xfer_folder): ditto for 'xfer_folder' + +2001-05-27 Dan Winship <danw@ximian.com> + + * gui/calendar-commands.c: #include + "evolution-shell-component-utils.h" rather than "e-gui-utils.h" + for e_pixmaps_update. + + * gui/tasks-control.c: Likewise. + +2001-05-25 Peter Williams <peterw@ximian.com> + + * gui/Makefile.am: Reference libeshell.la instead of libeshell.a. + +2001-05-23 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/recurrence-page.c: Finished porting from the old + event-editor.c. Made it store a clone of the component for when + we need to expand the recurrence set. + + * gui/dialogs/event-page.c (event_page_get_dates): New function. + + * gui/dialogs/editor-page.c (editor_page_set_dates): Renamed from + editor_page_set_dtstart(); now sets both DTSTART and DTEND. + + * gui/dialogs/alarm-page.c (alarm_page_set_dates): Ahem, it is a + label, not an entry. + +2001-05-21 Federico Mena Quintero <federico@ximian.com> + + Fix bug #2831; the tasks toolbar and menu now have a button to + delete the selected tasks. + + * gui/e-calendar-table.c (e_calendar_table_delete_selected): New + function. + (delete_cb): Use e_calendar_table_delete_selected(). + (e_calendar_table_get_table): New function. + + * gui/tasks-control.c (tasks_control_new_task_cmd): Handle the + delete command. + (selection_changed_cb): Change the sensitivity of the TasksDelete + command when the selection in the table changes. + + * gui/e-tasks.c (table_selection_change_cb): Notify upstream when + the ETable selection changes. + +2001-05-18 Federico Mena Quintero <federico@ximian.com> + + Fix bug #2829. + + * gui/dialogs/delete-comp.c (delete_component_dialog): Allow the + caller to specify whether just one or many components are to be + deleted. + + * gui/e-calendar-table.c (tasks_popup_one): Popup menu definition + for when one and only one task is selected. + (tasks_popup_many): Likewise, for more than one task. + (e_calendar_table_on_right_click): Do not create a structure for + the closure data; we can simply pass the cal_table. Use a + different menu depending on the number of selected tasks. + (mark_as_complete_cb): Renamed; now iterates over the selected + rows. + (delete_selected_components): New function to delete all the + selected components. + (delete_cb): Adjusted for delete_component_dialog(). + (open_task): New function, simply open a CalComponent in the task + editor. + (open_task_by_row): Renamed; use open_task(). + + * gui/e-week-view.c (e_week_view_on_delete_appointment): Updated + for delete_component_dialog(). + + * gui/e-day-view.c (e_day_view_on_delete_appointment): Likewise. + +2001-05-16 Duncan Mak <duncan@ximian.com> + + * gui/Makefile.am (evolution_calendar_SOURCES): removed + editor-page.[ch] because they've now moved dialogs. + +2001-05-16 Federico Mena Quintero <federico@ximian.com> + + Split the event and task editors into different objects for the + separate pages; this way they can be shared by both editors. + + * gui/dialogs/editor-page.[ch]: New abstract class for a page in a + calendar component editor. + + * gui/dialogs/event-page.[ch]: Main page of an event editor. + + * gui/dialogs/alarm-page.[ch]: Alarm page of a calendar component + editor. + + * gui/dialogs/recurrence-page.[ch]: Recurrence page of a calendar + component editor. + + * gui/dialogs/event-page.c (event_page_fill_widgets): Eeek, this + was missing a bunch of break statements. + (event_page_fill_component): Use a temporary variable rather than + allocating a struct icaltimetype. + + * gui/dialogs/alarm-page.c (get_alarm_string): Do not use + fixed-size buffers. + (alarm_page_fill_widgets): Use cal_obj_uid_list_free(). + (append_reminder): Now the list stores the plain CalComponentAlarm + structures in the row data. We do *NOT* want to be frobbing the + component's data directly. Rather, we clone the alarms from the + component and maintain them on our own. + (alarm_page_fill_component): Clone the alarms before adding them + to the component so that we maintain the invariant that the alarm + structures in the list did *not* come from the component. + + * cal-util/cal-component.c (cal_component_add_alarm): Added + documentation. + (cal_component_remove_alarm): Added documentation. + (cal_component_remove_alarm): Do a lookup in our hash table of + alarms instead of scanning the whole component. + (CalComponentAlarm): Removed the `parent' field, since it was + unused. + (cal_component_free_alarm_uids): Removed function, since + cal_component_get_alarm_uids() is documented so that the user will + know that he must use cal_obj_uid_list_free(). + (cal_component_alarm_clone): New function. + +2001-05-09 Federico Mena Quintero <federico@ximian.com> + + * gui/Makefile.am (evolution_calendar_SOURCES): Added + editor-page.[ch] to the list of sources. + +2001-05-09 JP Rosevear <jpr@ximian.com> + + * gui/event-editor.c (reminder_add_cb): switch on the correct + widget and map + +2001-05-08 JP Rosevear <jpr@ximian.com> + + * gui/e-itip-control.c (e_itip_control_factory): unref the + property bag when we finish with it + + * gui/evolution-calendar-control.c (calendar_properties_init): ditto + + * gui/control-factory.c (calendar_properties_init): ditto + + * gui/calendar-summary.c (create_summary_view): ditto + +2001-05-08 JP Rosevear <jpr@ximian.com> + + * cal-util/cal-component.c (cal_component_alarm_free): + (cal_component_alarm_free): free the alarm component if it doesn't + have a parent, rather than if it does + + * gui/Makefile.am: sanitize LD_ADDS and CFLAGS so the libtool + lines are shorter (fixes problem on solaries due to sed) + +2001-05-07 JP Rosevear <jpr@ximian.com> + + * pcs/cal-factory.[hc]: Convert to bonobo xobject + + * pcs/cal.[hc]: Convert to bonobo xobject + +2001-05-07 Gediminas Paulauskas <menesis@delfi.lt> + + * gui/event-editor.c (make_title_from_comp): conversion summary + from utf8 here, use translated strings as is. + (set_title_from_comp): reflect this, simplify. + + * gui/dialogs/task-editor.c: updated copies of above functions here. + + * gui/gnome-cal.c: use defines from widgets/misc/e-filter-bar.h for + consistency in "Show all". + +2001-05-04 JP Rosevear <jpr@ximian.com> + + * gui/calendar-model.c (calendar_model_append_row): unref the + calcomponent when we're done with it + + * cal-util/cal-component.c (cal_component_gen_uid): free the iso + date string when we finish with it + +2001-04-27 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-edit.c (put_property_in_list): remove hardcoded + values + (edit_attendee): ditto, and there are only 4 roles now + + * gui/e-meeting-dialog.glade: tweak + + * gui/itip-utils.c: There shouldn't be an "other" role + +2001-04-26 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-edit.c (edit_attendee): use enums not hard code + values + +2001-04-26 JP Rosevear <jpr@ximian.com> + + * gui/e-meeting-edit.c (add_button_clicked_cb): + icalparameter_new_rsvp now takes an enum + +2001-04-26 JP Rosevear <jpr@ximian.com> + + * cal-util/cal-component.c (cal_component_alarm_set_trigger): the + value type should be inited with ICAL_VALUE_* rather than + ICAL_*_VALUE because it is a param argument. + +2001-04-26 Federico Mena Quintero <federico@ximian.com> + + * gui/calendar-model.c (get_is_overdue): Replace "<" by "<=" in + the comparison for due dates against the current time. This makes + tasks appear immediately as red when you click Now in the due date + popup field. + + This is not a complete solution to the more general problem of + tasks staying the same color even if they become overdue while the + task list remains the same on the screen. This has been logged as + bug #2399. + +2001-04-26 Ettore Perazzoli <ettore@ximian.com> + + * gui/dialogs/Makefile.am (INCLUDES): Add `$(EXTRA_GNOME_CFLAGS)'. + +2001-04-26 Dan Winship <danw@ximian.com> + + * conduits/todo/Makefile.am (libetodo_conduit_la_LIBADD): Remove + UNICODE_LIBS + + * cal-client/Makefile.am (client_test_LDADD): Remove -lunicode + +2001-04-24 Duncan Mak <duncan@ximian.com> + + * gui/alarm-notify/notify-main.c (funny_trigger_cb): Fixed + Strftime so it uses the locale prefered way to display date/time. + ("%x %X" instead of "%Y/%m/%d %H:%M:%S") + +2001-04-21 Gediminas Paulauskas <menesis@delfi.lt> + + * gui/calendar-summary.c: translate "Things to do" etc. and convert them + to utf8. Changed some link from helixcode to ximian. + +2001-04-18 Ettore Perazzoli <ettore@ximian.com> + + * gui/dialogs/Makefile.am (INCLUDES): Add + `-I$(top_srcdir)/calendar/cal-client', + `-I$(top_builddir)/calendar/cal-client'. + * gui/Makefile.am (INCLUDES): Likewise. + + * cal-client/cal-query.h: #include "evolution-calendar.h". + +2001-04-17 Federico Mena Quintero <federico@ximian.com> + + * gui/event-editor.c (init_widgets): Connect to the "changed" + signal of the categories entry so that they will be applied + correctly. + (EventEditorPrivate): Added fields for the contacts button and + entry. + (init_widgets): Disable the contacts widgets as we do not support + them yet. + (get_widgets): Get the contacts widgets. + + * gui/dialogs/task-editor.c (get_widgets): Get the contacts + button, which was missing. + (init_widgets): Disable the contacts widgets as we do not support + them yet. + + * pcs/query.c (matches_text_list): Use e_utf8_strstrcasedecomp() + instead of plain e_utf8_strstrcase(). + (matches_summary): Likewise. + +2001-04-17 JP Rosevear <jpr@ximian.com> + + * cal-util/cal-component.c (cal_component_alarm_set_action): the + libical action stuff uses enums rather than strings to enumerate + the various actions now + (cal_component_alarm_get_action): ditto + +2001-04-17 Ettore Perazzoli <ettore@ximian.com> + + * gui/alarm-notify/Makefile.am (evolution_alarm_notify_SOURCES): + Add `$(CORBA_GENERATED)'. + +2001-04-16 Dan Winship <danw@ximian.com> + + * pcs/Makefile.am (INCLUDES): Add EXTRA_GNOME_CFLAGS, for gal. + +2001-04-15 Federico Mena Quintero <federico@ximian.com> + + * gui/gnome-cal.c (setup_widgets): Create the ESearchBar thingy. + (search_bar_query_changed_cb): Build the different queries based + on the type and string. + + * pcs/query.c (backend_obj_updated_cb): Ref the query while we are + notifying the listener so that it will not disappear from under us. + (backend_obj_removed_cb): Likewise. + (process_component_cb): Likewise. + (func_contains): New function to match text fields. + (matches_comment): New function to match comment lists. + (matches_description): New function to match description lists. + (matches_summary): New function to match summaries. + (matches_any): New function to match any text field. + (func_has_categories): New function to match categories. + +2001-04-14 Federico Mena Quintero <federico@ximian.com> + + * gui/alarm-notify/notify-main.c (main): Initialize the trigger + and queue systems. + +2001-04-13 Dan Winship <danw@ximian.com> + + * cal-util/timeutil.c (time_from_isodate): Fix the syntactic bogon + here, and attempt to fix the logical bogon too. (tm_gmtoff and + timezone have opposite signs... I'm assuming Federico tested the + Linux case, so I'm flipping the sign of the BSD case. But maybe he + didn't and it's supposed to be the other way...) + +2001-04-12 Federico Mena Quintero <federico@ximian.com> + + * gui/e-day-view.c (update_query): New function to restart a query + for the day view. + (query_obj_updated_cb): Renamed from obj_updated_cb(); updated for + queries instead of calendar clients. + (query_obj_removed_cb): Likewise. + (cal_opened_cb): Just update_query() instead of queueing reloading + all the events. + (e_day_view_set_cal_client): Likewise. + (e_day_view_set_query): Likewise. + (e_day_view_set_selected_time_range): Likewise. + (e_day_view_set_days_shown): Likewise. + (e_day_view_recalc_work_week): Likewise. + (e_day_view_queue_reload_events): Removed function now that events + are updated entirely by the query. + (e_day_view_reload_events_idle_cb): Likewise. + (e_day_view_reload_events): Likewise. + (e_day_view_init): Use a pretty arrow instead of GDK_TOP_LEFT_ARROW. + + * gui/e-week-view.c: Analogous changes to the ones in e-day-view.c. + (e_week_view_init): Use a pretty arrow instead of GDK_TOP_LEFT_ARROW. + + * cal-util/timeutil.c (isodate_from_time_t): Return a g_strdup()ed + version of the string instead of a pointer to a static buffer. + (time_from_isodate): Resurrected function. Polished up to our + current standards of paranoia. + + * pcs/query.c (func_time_now): New function (time-now). + (func_make_time): New function (make-time ISODATE). + (func_time_add_day): New function (time-add-day TIME N). + (func_time_day_begin): New function (time-day-begin TIME). + (func_time_day_end): New function (time-day-end TIME). + (func_occur_in_time_range): Use time_t values instead of ints. + (match_component): Free the stringized component. Free the ESexp + result value. + + * gui/e-day-view.h: Removed a couple of unused prototypes. + + * pcs/query.c (query_destroy): Oops, disconnect from the backend. + + * pcs/cal.c (Cal_get_query): Duplicate the query reference before + we return it. + + * gui/calendar-commands.c (pixmaps): Fixed paths to image files. + +2001-04-11 JP Rosevear <jpr@ximian.com> + + * pcs/cal-backend-file.c (cal_backend_file_compute_changes): + prepend to both changes and change_ids when different and mark as + modified, not added + +2001-04-11 Christopher James Lahey <clahey@ximian.com> + + * gui/calendar-model.c (calendar_model_append_row): Fix this to + just send the data to the wombat instead of inserting it + ourselves. + +2001-04-11 Gediminas Paulauskas <menesis@delfi.lt> + + Display fixes, thanks to Kjartan for finding these. + + * gui/event-editor.c: use simple (not e_utf8_) gtk_clist_append for + strings which are never in utf-8. + * dialogs/delete-comp.c (delete_component_dialog): convert only + summary from utf-8 to gtk charset. Translated values are in correct + craset already. + +2001-04-04 Kjartan Maraas <kmaraas@gnome.org> + + * gui/calendar-commands.c: Fix headers. + * gui/calendar-config.c: Same here. + * gui/calendar-model.c: Same here. + * gui/e-day-view-time-item.c: Same here. + * gui/e-day-view-top-item.c: Same here. + * gui/e-day-view.c: Same here. + * gui/e-meeting-edit.c: Same here. + * gui/e-week-view-main-item.c: Same here. + * gui/e-week-view.c: Same here. + * gui/event-editor.c: Same here. + * gui/gnome-cal.c: Same here. + * gui/goto.c: Same here. + * gui/main.c: Same her. + * gui/print.c: Same here. + +2001-04-02 Federico Mena Quintero <federico@ximian.com> + + * gui/e-tasks.c (e_tasks_setup_menus): Plug leak. + + * gui/event-editor.c (obj_updated_cb): Do nothing for now until we + think of something sensible to do. + (obj_removed_cb): Likewise. + + * gui/dialogs/task-editor.c (obj_updated_cb): Likewise. + (obj_removed_cb): Likewise. + + * gui/event-editor.c (dialog_to_comp_object): Plug leak. + +2001-04-01 Federico Mena Quintero <federico@ximian.com> + + Client-side glue for the live query engine. + + * cal-client/query-listener.[ch]: New files with the + implementation fo the QueryListener interface. + + * cal-client/cal-query.[ch]: New files with the client-side + convenience object for live queries. + + * cal-client/cal-listener.h (CalListenerClass): Removed unused + slots for signal handlers. + + * cal-client/Makefile.am (libcal_clientinclude_HEADERS): Now we + install the evolution-calendar.h header. This sucks a bit. + +2001-04-01 Gediminas Paulauskas <menesis@delfi.lt> + + * gui/calendar-commands.c: use new pixmap cache. Added some menu icons + and changed filenames of renamed icons. + * gui/tasks-control.c: added icons for new task and print in menu. + +2001-03-29 Federico Mena Quintero <federico@ximian.com> + + Engine for live queries to calendars. A query object watches a + CalBackend in the PCS and is otherwise completely separate from + it; backends need to do nothing to support live queries. Right + now we have the following functions: + + (get-vtype) + + Returns a string indicating the type of component + (VEVENT, VTODO, VJOURNAL, VFREEBUSY, VTIMEZONE, + UNKNOWN). + + (occur-in-time-range? START END) + + START - int, time_t start of the time range + END - int, time_t end of the time range + + Returns a boolean indicating whether the component + has any occurrences in the specified time range. + + * idl/evolution-calendar.idl (Cal::getQuery): New method that + initiates a live query. + (Query): New interface for a handle to a live query. + (QueryListener): New interface for a listener to changes in a live + query. + + * pcs/query.[ch]: New files with the live query engine. + + * pcs/cal-backend.h (CalBackendClass): Added notification signals + so that the query system can catch them. + (CalBackendClass): New virtual method ::get_load_state(). + + * pcs/cal-backend.c (cal_backend_opened): + (cal_backend_obj_updated): + (cal_backend_obj_updated): New functions to emit the notification + signals; to be used only by backend implementations. + (cal_backend_get_load_state): New function. + + * pcs/cal-backend-file.c (notify_update): Call + cal_backend_obj_updated(). + (notify_remove): Call call_backend_obj_removed(). + (open_cal): Free the icalcomp if it is not of the correct type. + (cal_backend_file_get_load_state): Implemented new method. + + * pcs/cal-backend-db.c (cal_backend_db_update_object): Call + cal_backend_obj_updated(). + (cal_backend_db_remove_object): Call cal_backend_obj_removed(). + (cal_backend_db_get_load_state): Implemented new method. + + * pcs/cal.c (Cal_get_query): Implementation of the ::getQuery() + method. + +2001-03-27 Anna Marie Dirks <anna@ximian.com> + + * gui/e-itip-control.c: fixed button placement to comply + with gnome standards. + +2001-03-27 Anna Marie Dirks <anna@ximian.com> + + * gui/e-itip-control.glade: fixed spacing and label alignment to + comply with gnome standards. Also removed shadows from extraneous + scrolled windows to avoid bevelitous. There are many more changes + that need to happen to this viewer, but they all require a hacker + to do some c-coding, so I will avoid committing them until after the + .10 release. + +2001-03-26 Kjartan Maraas <kmaraas@gnome.org> + + * cal-client/client-test.c: Replace includes of <gnome.h>, <bonobo.h> + and <gtk/gtk.h> with the needed headers to speed up compile. + * cal-util/test-recur.c: Same here for <gtk/gtk.h> + * gui/calendar-commands.c: Replace <bonobo.h> and remove + <libgnorba/gnorba.h> + * gui/calendar-summary.c: Replace <gnome.h> and <bonobo.h> + * gui/calendar-summary.h: Added <bonobo/bonobo-generic-factory.h> + * gui/component-factory.c: Remove <bonobo.h> + * gui/control-factory.c: Replace <bonobo.h> + * gui/e-calendar-table.c: Remove <gnome.h> + * gui/e-itip-control.c: Replace <gnome.h> and <bonobo.h> + * gui/e-meeting-edit.c: Replace <bonobo.h> + * gui/e-tasks.c: Replace <gnome.h> + * gui/e-tasks.h: Replace <bonobo.h> + * gui/gnome-cal.h: Remove <bonobo.h> + * gui/main.c: Replace <bonobo.h> and <glade/glade.h> + * gui/tasks-control-factory.c: Replace <bonobo.h> + * gui/tasks-control.c: Replace <gnome.h> and <bonobo.h> + * gui/weekday-picker.c: Add <string.h> and <libgnome/gnome-defs.h> + * gui/alarm-notify/client-main.c: Remove <gnome.h> and <bonobo.h> + * gui/alarm-notify/notify-main.c: Replace <gnome.h> and <bonobo.h> + * gui/dialogs/alarm-notify-dialog.c: Replace <gnome.h> + * pcs/cal-backend.c: Replace <gtk/gtk.h> + +2001-03-25 Federico Mena Quintero <federico@ximian.com> + + * gui/e-calendar-table.c (e_calendar_table_init): The + model_rows_{inserted,deleted} signals changed names; deal with it. + (e_calendar_table_on_rows_inserted): Updated for new ETable API. + (e_calendar_table_on_rows_deleted): Likewise. + + * gui/gnome-cal.h (GnomeCalendarOpenMode): Removed unused enum. + + * gui/gnome-cal.c (gnome_calendar_open): Constify. + + * gui/calendar-commands.c (calendar_set_uri): Removed function, + since it was just calling gnome_calendar_open(). + + * gui/control-factory.c (set_prop): Replace usage of + calendar_set_uri() with gnome_calendar_open(). + (load_calendar): Likewise. + (calendar_persist_init): Made static. + + * gui/e-tasks.c: #include "calendar-config.h" + (e_tasks_update_all_config_settings): We are configuring a table, + not a calendar! Use the appropriate function. + +2001-03-17 Miguel de Icaza <miguel@ximian.com> + + * gui/e-day-view.c (e_day_view_on_new_event, + e_day_view_on_new_appointment): Simplifed this function to use the + shared code. + + * gui/e-week-view.c (e_week_view_on_new_event, + e_week_view_on_new_appointment): ditto. + + * gui/gnome-cal.c (gnome_calendar_new_appointment_for): New + function used to launch editor components with a time range. A + bunch of functions use this code now instead of duplicating code + all over the place + + * gui/e-week-view.c (e_week_view_new_event): Moved functionality + here from e_day_view_on_new_appointment. Allows setting for "full + day" event. + (e_week_view_on_new_full_day): New function for making a full day + event. + (e_week_view_on_goto_date): Go To support. + (e_week_view_on_goto_today): Goto today support. + + * gui/e-day-view.c (e_day_view_new_event): Moved functionality + here from e_day_view_on_new_appointment. Allows setting for "full + day" event. + (e_day_view_on_new_full_day): New function for making a full day + event. + (e_day_view_on_goto_date): Go To support. + (e_day_view_on_goto_today): Goto today support. + + * main_items: Add New All Day Event; Go to Today; Go to Date. + +2001-03-07 Miguel de Icaza <miguel@ximian.com> + + * gui/control-factory.c (calendar_persist_init): New function: + inits the BonoboPersistFile server. + + * gui/GNOME_Evolution_Calendar.oaf.in: Added BonoboPropertyBag to + the list of supported interfaces that were supported but not + reported. Add the new PersistFile. + + Add text/calendar mime type attribute. + +2001-03-15 Dan Winship <danw@ximian.com> + + * gui/e-week-view.c (e_week_view_start_editing_event): + * gui/e-day-view.c (e_day_view_start_editing_event): Update + arguments to e_canvas_item_grab_focus. + +2001-03-15 Gediminas Paulauskas <menesis@delfi.lt> + + * gui/*.xpm: moved to ../art. + * gui/Makefile.am: removed *.xpm and oaf_DATA from EXTRA_DIST. + * gui/e-calendar-table.c, gui/e-day-view.c, gui/e-week-view.c: + #include "art/*.xpm". + +2001-03-09 JP Rosevear <jpr@ximian.com> + + * conduits/todo/Makefile.am: PISOCK_INCLUDEDIR has become + PISOCK_CFLAGS in gnome-pilot.m4 and remove capplet foo + + * conduits/calendar/Makefile.am: ditto + +2001-03-08 Ettore Perazzoli <ettore@ximian.com> + + * gui/component-factory.c (factory_fn): Specify a NULL + `EvolutionShellComponentGetDndSelectionFn'. + +2001-02-27 Miguel de Icaza <miguel@ximian.com> + + * gui/e-day-view.c (e_day_view_on_event_right_click): Reorganize + the menus to have entries always in a consistent fashion, as + reported to the genepool mailing list. + (e_day_view_on_event_right_click): Added a FIXME comment to the + FIXME comment without a FIXME. + + Now we use e_popup_menu. This allows us to hide/show items on + demand, and to sensitize/de-sensitize items depending on their + state. + + This will also let us add icon support (when we get nice icons for + this) + + * gui/e-week-view.c (e_week_view_show_popup_menu): Ditto. + + The files popup-menu.c and popup-menu.h can now be removed. + +2001-03-05 Damon Chaplin <damon@ximian.com> + + * gui/e-tasks.c: keep list of all Tasks folders so we can update the + preference settings when necessary. + + * gui/gnome-cal.c: configure the TaskPad according to the settings. + + * gui/e-calendar-table.c: use ECellCombo and ECellDateEdit for fields, + so the tasks folders is almost usable now. + + * gui/calendar-model.c: added support for the Status property. + + * gui/calendar-config.[hc]: added convenience functions to setup + ECalendarTable and ECellDateEdit objects. + + * gui/calendar-commands.c: connected to "destroy" signal of calendars + so we can remove them from all_calendars list. + + * gui/dialogs/cal-prefs-dialog.c (cal_prefs_dialog_update_config): + call e_tasks_update_all_config_settings() to update all the settings + in the Tasks folders as well. + + * cal-util/cal-component.h: added CAL_COMPONENT_FIELD_STATUS. + + * cal-util/cal-component.c (cal_component_get_transparency): fixed + calls to strcasecmp so they check for '== 0'. + + Applied patch from Miguel... + +2001-02-27 Miguel de Icaza <miguel@ximian.com> + + * gui/e-day-view.c (e_day_view_on_event_right_click): Reorganize + the menus to have entries always in a consistent fashion, as + reported to the genepool mailing list. + (e_day_view_on_event_right_click): Added a FIXME comment to the + FIXME comment without a FIXME. + + Now we use e_popup_menu. This allows us to hide/show items on + demand, and to sensitize/de-sensitize items depending on their + state. + + This will also let us add icon support (when we get nice icons for + this) + + * gui/e-week-view.c (e_week_view_show_popup_menu): Ditto. + + The files popup-menu.c and popup-menu.h can now be removed. + +2001-03-02 JP Rosevear <jpr@ximian.com> + + * conduits/todo/e-todo.conduit.in: update for new pilot foo + + * conduits/calendar/e-calendar.conduit.in: ditto + + * conduits/todo/Makefile.am: update sed script + + * conduits/calendar/Makefile.am: ditto + +2001-02-28 Federico Mena Quintero <federico@ximian.com> + + * gui/event-editor.c (recurrence_exception_select_row_cb): New + function to set the EDateEdit's value when a row is selected in + the exception date list. Fixes bug #1638. + (append_exception): Set the value as well. Block/unblock signals + from the clist as appropriate. Gotta love non-model/view widgets. + (recurrence_exception_delete_cb): Be more paranoid about the + contents of the list row's data. + (recur_to_comp_object): Likewise. + (fill_exception_widgets): Select the first row after we are done + appending the exception dates. + +2001-02-26 Federico Mena Quintero <federico@ximian.com> + + * gui/alarm-notify/Makefile.am (libalarm_a_SOURCES): Create a + little stand-alone library for the low-level alarm trigger + mechanism. This is so that the GUI parts of the calendar can use + it in addition to the alarm daemon. + + * gui/main.c: #include "alarm-notify/alarm.h". + + * gui/calendar-summary.c: Likewise. + (alarm_fn): Do not remove the previous alarm; it is removed + automatically when it is triggered. + + * gui/Makefile.am (evolution_calendar_SOURCES): Removed alarm.[ch] + from the sources. + + * gui/alarm.[ch]: Removed obsolete files. + +2001-02-23 Federico Mena Quintero <federico@ximian.com> + + * gui/alarm-notify/alarm-notify.c (AlarmNotify_addCalendar): + Switched to using our own refcounted structure for loaded clients. + (AlarmNotify_removeCalendar): Ditto. Also, do the full + destruction of the client. + (alarm_notify_destroy): Destroy each element in the hash table. + + * cal-client/cal-client.c (cal_client_construct): Test for + exceptions from OAF when activating the Wombat calendar factory. + + * gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.oaf.in: + New .oaf.in file. + + * gui/alarm-notify/Makefile.am (oaf_in_files): Updated. + + * gui/GNOME_Evolution_Calendar.oaf.in: Put all the servers here + instead of in a million files. + + * gui/GNOME_Evolution_Calendar_Control.oaf.in: Removed file. + + * gui/GNOME_Evolution_Calendar_gnomecal.oaf.in: Removed *REALLY* + obsolete file. + + * gui/Makefile.am (oaf_in_files): Updated. + +2001-02-23 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-backend-db.c (add_history): fixed generation of history records + +2001-02-16 Federico Mena Quintero <federico@ximian.com> + + * pcs/cal-factory.c (CalFactoryPrivate): Added a `registered' + field. + (cal_factory_oaf_register): New function; now the factory performs + its own registration with OAF. + (cal_factory_destroy): Unregister from OAF if appropriate. + +2001-02-19 JP Rosevear <jpr@ximian.com> + + * conduits/todo/Makefile.am: Remove PISOCK_LIBDIR + + * conduits/calendar/Makefile.am: ditto + +2001-02-16 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/calbackend-db.c (cal_backend_db_destroy): close DB environment. + Some compilation warnings removed + +2001-02-13 Christopher James Lahey <clahey@ximian.com> + + * gui/Makefile.am (evolution_calendar_LDADD): Added libmenus.la. + + * gui/e-calendar-table.c, gui/e-calendar-table.h + (e_calendar_table_get_spec): Added this function. + + * gui/e-tasks.c, gui/e-tasks.h (e_tasks_setup_menus): Added this + function. + + * gui/tasks-control.c (tasks_control_activate): Call + e_tasks_setup_menus. + +2001-02-13 JP Rosevear <jpr@ximian.com> + + * gui/e-tasks.c (e_tasks_new_task): call task_editor_focus + +2001-02-13 JP Rosevear <jpr@ximian.com> + + * gui/calendar-commands.c (update_pixmaps): Set toolbar new + appointment icon + (set_pixmap): load files rather than create from xpm file + + * gui/*view.xpm: move to the art directory + +2001-02-13 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-backend-db.c (cal_backend_db_get_alarms_for_object): + implemented + +2001-02-13 JP Rosevear <jpr@ximian.com> + + * gui/calendar-commands.c (update_pixmaps): Set toolbar new command + + * gui/e-calendar-table.c: Add titles to pixbuf column for grouping + + * gui/calendar-model.c (calendar_model_class_init): override value + to string virtual method + (calendar_model_value_to_string): implement value to string for + etable (necessary for group by) + +2001-02-12 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-backend-file.c: + cal_backend_db_update_object(): manage both updates and additions/add notification + cal_backend_db_get_object(): don't use DB cursors + cal_backend_db_get_type_by_uid(): don't use DB cursors + cal_backend_db_remove_object(): don't use DB cursors/add notification + cal_backend_db_get_alarms_in_range(): implemented + +2001-02-12 Kjartan Maraas <kmaraas@gnome.org> + + * gui/Makefile.am: Hook up the xml-i18n-tools + .oaf.in stuff. + * gui/GNOME_Evolution_Calendar*.oaf.in: Marked strings for translation. + +2001-02-11 Rodrigo Moya <rodrigo@ximian.com> + + * pcs/cal-backend-db.c: added DB3 transactions support + * pcs/cal-backend-db.[ch]: added the new DB3-based backend. This is just + the beginning, there are some missing things still. + +2001-02-11 Gediminas Paulauskas <menesis@delfi.lt> + + Really use xml-i18n-tools. + + * conduits/calendar/e-calendar-conduit-control-applet.desktop, + conduits/todo/e-todo-conduit-control-applet.desktop: removed. + + * conduits/calendar/e-calendar-conduit-control-applet.desktop.in, + conduits/todo/e-todo-conduit-control-applet.desktop.in: added empty. + + * conduits/calendar/Makefile.am, conduits/todo/Makefile.am: + reflect above changes, merge translations. + + * gui/*.glade.h, gui/dialogs/*.glade.h: removed, xml-i18n-extract + takes care of strings itself. + + * gui/*.glade, gui/dialogs/*.glade: do not output_translatable_strings + + * gui/Makefile.am, gui/dialogs/Makefile.am: do not include removed + files in EXTRA_DIST. + +2001-02-08 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/task-editor-dialog.glade: Oops, remove old widget + +2001-02-08 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/task-editor.c (fill_widgets): fill in new + classification stuff properly + (get_widgets): load new class. widgets + (init_widgets): if the class. widgets change, mark the dialog + dirty + (dialog_to_comp_object): set the comp class. from the new widgets + + * gui/dialogs/task-editor-dialog.glade: Make more consistent, + fixing bugs 1247 and 1249 + + * gui/dialogs/task-editor.c (fill_widgets): + + * gui/event-editor-dialog.glade: Gui tidying + + * gui/event-editor.c: Remove old alarm cruft + + * cal-util/cal-component.c (cal_component_set_url): Don't try and + write an empty string as a property + + +2001-02-08 JP Rosevear <jpr@ximian.com> + + * pcs/cal-backend-file.c: Move the get_change code here + + * pcs/cal-backend.c: Remove get_changes related stuff and + implement by calling the virtual method instead + + * pcs/cal-backend.h: New virtual method. + + * pcs/cal-backend-file.c (compute_alarm_range): Use + icaldurationtype_as_int (replace _as_timet) + (add_alarm_occurrences_cb): ditto + +2001-02-08 JP Rosevear <jpr@ximian.com> + + * pcs/cal-backend-file.c (compute_alarm_range): Use + icaldurationtype_as_int (replace _as_timet) + (add_alarm_occurrences_cb): ditto + + * gui/e-week-view.c (e_week_view_on_schedule_meet): new routine to + throw up the meeting schedule dialog + (e_week_view_show_popup_menu): add schedule meeting to the + contextual menu where appropriate + +2001-02-08 JP Rosevear <jpr@ximian.com> + + * gui/event-editor.c: Remove assorted menu/bonobo stuff + + * gui/dialogs/task-editor.c: Remove assorted menu/bonobo stuff + (task_editor_construct): no longer suck out the glade contents + into a bonobo win, listen for apply and close signals + (tedit_apply_event_cb): listen for apply signal and save object + (tedit_close_event_cb): listen for close signal and prompt to save + if need be + (task_editor_focus): new function to bring the dialog to the front + + * gui/dialogs/task-editor.h: new prototype + + * gui/e-meeting-edit.c (schedule_button_clicked_cb): no need to + update widgets in the event editor since the event editor won't be + open + (e_meeting_editor_new): don't need the event editor reference any + more + + * gui/e-meeting-edit.h: Change prototype + + * gui/e-day-view.c (e_day_view_on_event_right_click): Make + schedule meeting a new contextual menu item + (e_day_view_on_schedule_meet): new routine to schedule a meeting + from the contextual menu + + * gui/e-calendar-table.c (e_calendar_table_open_task): Call + task_editor_focus + + * gui/event-editor-dialog.glade: Update to be a property box + + * gui/dialogs/task-editor-dialog.glade: Update to be a property + box + +2001-02-07 Iain Holmes <iain@ximian.com> + + * gui/calendar-summary.c (create_summary_view): Add a setter to the + property bag. + (set_property): The setter. + (generate_html_summary): Sort the UIDs accodring to time. + +2001-02-06 JP Rosevear <jpr@ximian.com> + + * gui/event-editor.c (fill_reminder_widgets): Match new + append_alarm signature + (reminder_to_comp_object): only add alarms tagged as new, no + longer delete all alarms first + (append_reminder): the row data is now of type ReminderData, + rename from append_alarm + (reminder_add_cb): math new append_alarm signature + (reminder_delete_cb): if the alarm existed before the dialog was + loaded, delete it immediately from the cal component + +2001-02-06 JP Rosevear <jpr@ximian.com> + + * gui/event-editor-dialog.glade: Gui tweaks for bugs 1248 and 1246 + + * gui/dialogs/task-editor-dialog.glade: ditto + +2001-02-07 JP Rosevear <jpr@ximian.com> + + * gui/event-editor-dialog.glade: Fix spacing + +2001-02-06 JP Rosevear <jpr@ximian.com> + + * gui/event-editor-dialog.glade: Gui tweaks for bugs 1248 and 1246 + + * gui/dialogs/task-editor-dialog.glade: ditto + +2001-02-06 JP Rosevear <jpr@ximian.com> + + * gui/e-week-view.c (e_week_view_show_popup_menu): Make the menus more + consistent + + * gui/e-day-view.c (e_day_view_on_event_right_click): ditto + + * gui/e-calendar-table.c: ditto + +2001-02-06 JP Rosevear <jpr@ximian.com> + + * cal-util/cal-component.c (cal_component_set_categories): If the + categories string is empty, remove the property + (get_period_list): Fixes from clahey to handle the new rdate + format in libical + (set_period_list): ditto + +2001-02-05 JP Rosevear <jpr@ximian.com> + + * cal-util/cal-component.c (cal_component_alarm_set_trigger): Set + the time and duration values in the trigger to null by default + (cal_component_free_alarm_uids): properly free the list of alarm + uids + +2001-02-05 JP Rosevear <jpr@ximian.com> + + * gui/event-editor.c (get_widgets): get the new reminder widgets + (sync_entries): different callback data + (summary_changed_cb): take different data and handle various cases + (init_widgets): connect signals for the new widgets + (get_alarm_duration_string): give a text string of the alarm + duration + (get_alarm_string): give a string representing the alarm + (fill_widgets): make sure we don't loop infinitely and remove old + alarm cruft + (reminder_to_comp_object): dump alarm info in the gui into the cal + component + (append_alarm): add alarm to the clist + (reminder_add_cb): create new alarm + (reminder_delete_cb): remove the alarm from the list + + * gui/event-editor-dialog.glade: Update gui + + * gui/e-calendar-table.c: include gnome.h for all the menu stuff + + * gui/calendar-summary.c: for internationalization + + * gui/tasks-control.c: include gnome.h + + * gui/e-tasks.c: ditto + + * gui/e-itip-control.c: ditto + + * cal-util/cal-recur.c (cal_recur_set_rule_end_date): Update for + libical changes + +2001-02-05 Christopher James Lahey <clahey@helixcode.com> + + * gui/calendar-model.c: Fixed up these #includes. + +2001-02-03 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/save-comp.c (save_component_dialog): + gnome_dialog_grab_focus() on the Yes button. Fixes bug #1242. + +2001-01-30 Kjartan Maraas <kmaraas@gnome.org> + + * gui/e-calendar-table.c: Mark a string for translation. + * gui/e-itip-control.c: Mark a bunch of strings for translation. + +2001-01-30 Ettore Perazzoli <ettore@ximian.com> + + * gui/print.c: #include <sys/time.h>. + +2001-01-29 Federico Mena Quintero <federico@ximian.com> + + * gui/calendar-config.c: <gnome.h> trimming to reduce compilation + time. + * gui/calendar-summary.c: Likewise. + * gui/e-calendar-table.c: Likewise. + * gui/e-day-view-time-item.c: Likewise. + * gui/e-day-view.c: Likewise. + * gui/e-itip-control.c: Likewise. + * gui/e-meeting-edit.c: Likewise. + * gui/e-meeting-edit.h: Likewise. + * gui/e-tasks.c: Likewise. + * gui/e-week-view.c: Likewise. + * gui/event-editor.c: Likewise. + * gui/gnome-cal.c: Likewise. + * gui/goto.c: Likewise. + * gui/itip-utils.h: Likewise. + * gui/main.c: Likewise. + * gui/popup-menu.c: Likewise. + * gui/print.c: Likewise. + * gui/tasks-control-factory.c: Likewise. + * gui/tasks-control.c: Likewise. + * gui/tasks-migrate.c: Likewise. + +2001-01-25 Federico Mena Quintero <federico@ximian.com> + + * cal-util/timeutil.c: <gnome.h> trimming to reduce compilation time. + * gui/dialogs/task-editor.c: Ditto. + * gui/dialogs/cal-prefs-dialog.c: Ditto. + * gui/dialogs/save-comp.c: Ditto. + * gui/dialogs/delete-comp.c: Ditto. + * gui/calendar-commands.c: Ditto. + * gui/calendar-model.c: Ditto. + +2001-01-26 Ettore Perazzoli <ettore@ximian.com> + + * gui/e-itip-control.c (itip_control_destroy_cb): Don't attempt to + call `icalcomponent_remove_component()' on a NULL component or a + NULL subcomponent. + +2001-01-25 Damon Chaplin <damon@ximian.com> + + * gui/tag-calendar.c: don't tag the calendar if no dates are shown. + (e_calendar_item_get_date_range() now returns FALSE in this case.) + +2001-01-23 Damon Chaplin <damon@helixcode.com> + + * gui/calendar-model.c (ensure_task_complete): make sure the status + is set to "Completed". Fixes bug #1253. + + * gui/e-tasks.c (e_tasks_open): load the ETable state after opening + the tasks folder, since it relies on the folder uri, which isn't set + now until you open the folder. + + * gui/calendar-model.c (obj_updated_cb): add the categories from the + updated object to our tree, and emit the "categories-changed" signal + if they have changed. Fixes bug #1255. + + * gui/e-tasks.c: removed debug messages. + +2001-01-23 JP Rosevear <jpr@ximian.com> + + * libical import cleanup + +2001-01-23 JP Rosevear <jpr@ximian.com> + + * conduits/todo/todo-conduit.c (local_record_from_comp): properly ref + the cal component when we use it, prevents double free + + * conduits/calendar/calendar-conduit.c (local_record_from_comp): ditto + +2001-01-22 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/Makefile.am: compile new stuff + + * gui/dialogs/task-editor.c (prompt_to_save_changes): use new + standard dialog + + * gui/event-editor.c (prompt_to_save_changes): ditto + + * gui/dialogs/save-comp.h: new header + + * gui/dialogs/save-comp.c (save_component_dialog): shows the save + dialog + +2001-01-22 JP Rosevear <jpr@ximian.com> + + * conduits/todo/todo-conduit.c (for_each_modified): remove duplicate + message + + * conduits/calendar/Makefile.am: Remove vfs lib dependency + + * conduits/todo/Makefile.am: ditto + + * conduits/calendar/calendar-conduit.c: Remove alarm foo for now + (for_each_modified): remove duplicate message + +2001-01-21 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (delete_record): Remove + deleted records from the pilot map so we don't have dupes in the future + + * conduits/todo/todo-conduit.c (delete_record): ditto + +2001-01-21 Federico Mena Quintero <federico@ximian.com> + + * gui/dialogs/task-editor.c (file_delete_cb): Fix bug #1250; now + we present a confirmation dialog before deleting the component. + +2001-01-20 Federico Mena Quintero <federico@ximian.com> + + * gui/event-editor-dialog.glade: Fix bug #1243. Turn on the Y + expand/fill options for the date widgets in the General page. + This makes them be vertically aligned with the "All day event" + toggle so that they will get the focus in the proper order; the + toggle would get the focus before them because it was a pixel or + two above them. + +2001-01-19 Federico Mena Quintero <federico@ximian.com> + + * gui/weekday-picker.c (weekday_picker_init): Unset the + GTK_CAN_FOCUS flag on the weekday picker. This will do until it + supports being used with the keyboard. + +2001-01-19 JP Rosevear <jpr@ximian.com> + + * cal-util/cal-component.c (cal_component_alarm_new): create a new + cal component alarm + (cal_component_add_alarm): add alarm to the cal component + (cal_component_remove_alarm): remove alarm from the cal component + (remove_alarm): remove alarm from hash + + * cal-util/cal-component.h: new protos + + * conduits/calendar/calendar-conduit.c (comp_from_remote_record): + add alarm information, still needs to be hacked to replace an already + existing alarm. questions abound about the heuristic for doing this. + +2001-01-17 JP Rosevear <jpr@ximian.com> + + * gui/event-editor.c (dialog_to_comp_object): Properly set categories + to NULL if there are none + +2001-01-18 Federico Mena Quintero <federico@ximian.com> + + * gui/tasks-migrate.[ch]: New files with a simple sequence to + migrate the task components from the old calendar folder into the + new tasks folder. + + * gui/component-factory.c (owner_set_cb): Call tasks_migrate() + once evolution_dir is set. It sucks to have to do this here. + + * cal-client/cal-client.c (cal_client_get_uids): In the inline + docs, indicate how to free the return value. + (cal_opened_cb): Ahem, moved assertion to the right place. Also, + ref() and unref() around our own signal emission because we are + not inside a signal handler, rather a simple callback from the + listener object; we want to have a chance to clean up even if the + client is unrefed during the emission. + + * gui/Makefile.am (evolution_calendar_SOURCES): Added + tasks-migrate.[ch] to the list of sources. + +2001-01-17 Federico Mena Quintero <federico@ximian.com> + + * gui/event-editor.c (init_widgets): Use + e_calendar_item_set_max_days_sel() instead of setting GTK+ object + arguments. + + * gui/e-day-view.c (e_day_view_set_cal_client): Oops, we had a + reversed test for the client being loaded. + + * gui/tag-calendar.c (tag_calendar_by_client): Fixed similarly + reversed test. + +2001-01-17 Damon Chaplin <damon@helixcode.com> + + * gui/e-week-view*.c + * gui/e-day-view*.c: don't use the theme colors at all within + the graphical parts of the widgets, since they may clash with + our colors. May make them configurable in future so people can tweak + them to go with their theme. At least the calendars are usable in any + theme now, even though the colors may not go well with the theme. + Also set the font of all the EText items in style_set. + + * gui/e-week-view-event-item.c (e_week_view_event_item_draw): don't + draw the icons if we are editing the event. + + * gui/e-day-view.c: + * gui/e-week-view.c: reinstated the optimizations so we don't do a + complete relayout if the event's dates haven't been changed. + (Though we still do a re-layout when recurring events change, since + comparing all the RDATES/RRULES/EXDATES/EXRULES is too much hassle.) + A side-effect of this change is that the EWeekView won't crash so + often - only recurring events will be a problem. + + * cal-util/cal-component.[hc]: added function to check if the start + and end dates of a component match. Used for optimizing the updating + of the EDayView & EWeekView. + +2001-01-17 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (start_calendar_server): Check + for open error and handled + + * conduits/todo/todo-conduit.c (start_calendar_server): ditto + +2001-01-17 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (start_calendar_server): Check + for open error and handled + + * pcs/cal-backend.c (cal_backend_compute_changes): Fix transposition + of sync db location + +2001-01-17 Federico Mena Quintero <federico@ximian.com> + + * */*: Ximianified email addresses and copyrights. + + * idl/evolution-calendar.idl (CalFactory::open): Renamed from + ::load(), and added an only_if_exists argument. + (CalFactory::create): Removed method. + (Listener::OpenStatus): Removed the IN_USE error and replaced it + with a NOT_FOUND one; renamed the enum from LoadStatus. + (Listener::notifyCalOpened): Renamed from notifyCalLoaded(). + + * pcs/cal-backend.h (CalBackend): Removed the uri field. + (CalBackendOpenStatus): Renamed from CalBackendLoadStatus and + added a NOT_FOUND value. + (CalBackendClass::open): Put in a slot for the open method. + + * pcs/cal-backend.c (cal_backend_create): Removed function. + + * pcs/cal-backend-file.c (cal_backend_file_open): Return the + appropriate value when only_if_exists is TRUE. + (create_cal): We are Ximian now, so set the PRODID property to + the appropriate foo. + + * pcs/cal-factory.c (CalFactory_open): implemented, replacing + CalFactory_load() and CalFactory_create(). + (CalFactory_open): Moved the queue_load_create_job() stuff to + here, since we now only need to contemplate the open case instead + of load/create ones. + (open_backend): Do everything here; replaces load_backend() and + create_backend(). + + * cal-client/cal-listener.h (CalListenerClass::cal_opened): + Renamed from cal_loaded. + (CalListenerClass): Replaced the silly signals, which are + gratuitous abstraction, by a set of function pointers in the + instance structure. + + * cal-client/cal-listener.c (cal_listener_get_calendar): Removed + unused function. + (cal_listener_construct): Added the listener notification functions. + (cal_listener_new): Ditto. + (Listener_notifyCalOpened): Renamed to our new naming convention + for servant implementations. + (Listener_notifyObjUpdated): Ditto. + (Listener_notifyObjRemoved): Ditto. + + * cal-client/cal-client.h (CalClientOpenStatus): Renamed from + CalClientLoadStatus. + (CalClientClass::cal_opened): Renamed from ::cal_loaded(). + (CalClientLoadState): New enum; basically make LoadState public so + that users of this code do not have to maintain their own states. + + * cal-client/cal-client.c (cal_client_create_calendar): Removed + function. + (cal_client_open_calendar): Moved the functionality over from + load_or_create(); now we do everything here. + (*): Use the CalClientLoadState enum values instead of the old + LoadState values. + (cal_client_get_load_state): Renamed from cal_client_is_loaded(), + and return the appropriate value. + (CalClientPrivate): Added an uri field. + (cal_client_init): Initialize priv->uri. + (cal_client_destroy): Free the priv->uri. + (cal_opened_cb): Maintain the priv->uri. + (cal_client_open_calendar): Fill in the priv->uri. + (cal_client_get_uri): New function. + + * gui/calendar-model.c (calendar_model_set_new_comp_vtype): New + function to configure the type of calendar components to create + when doing click-to-add. This makes the model usable for + something other than task lists. + (calendar_model_get_new_comp_vtype): New function. + + * gui/e-calendar-table.c (e_calendar_table_get_model): New function. + (e_calendar_table_destroy): Unref the subset_model. + + * gui/gnome-cal.h (GnomeCalendarOpenMode): Removed enum. + + * gui/gnome-cal.c (LoadState): Removed enum; we now use the + CalClientLoadState from the client objects. + (GnomeCalendarPrivate): Removed the loading_uri and + task_pad_loading_uri fields as well as the load_state and + task_pad_load_state fields, as we can now query them directly from + the CalClient. + (open_error): Renamed from load_error(). + (create_error): Removed function. + (gnome_calendar_open): Do not take in the mode parameter. + (cal_opened_cb): Get rid of our beautifully-crafted state machine + and replace it with simple code; all the loading smarts are in the + Wombat now. + (setup_widgets): Set the new component vtype of the table model to + CAL_COMPONENT_TODO. + + * gui/Makefile.am (evolution_calendar_SOURCES): Removed + gnome-month-item.[ch] from the list of sources. + + * gui/calendar-summary.c (CalSummary): Removed unused cal_loaded + field. + (create_summary_view): Do not check if the file exists; this is + the job of the Wombat. + (generate_html_summary): Fixed prototype. + (alarm_fn): Fixed prototype. + (property_dialog): Fixed prototype. Wonder if/how this ever + worked. + (create_summary_view): Cast the component and view as + appropriate. Removed unused html variable. + + [Iain dude, are you compiling with -Wall?] + + * gui/e-itip-control.c (cal_opened_cb): Sigh, this function + signature was *very* wrong. It was using CalClientGetStatus + instead of CalClientOpenStatus. + + * gui/e-tasks.h (ETasksOpenMode): Removed enum. + + * gui/e-tasks.c (setup_widgets): Set the new component vtype of + the table model to CAL_COMPONENT_TODO. + (LoadState): Removed the state machine foo. + (e_tasks_open): Removed the mode parameter. + (initial_load): Removed function. + (create_error): Removed function. + (ETasksPrivate): Removed folder_uri field. + (cal_opened_cb): Remove the state machine. + + * gui/component-factory.c: #include "tasks-control.h" + + * conduits/calendar/calendar-conduit.h (ECalConduitContext): + Removed calendar_load_tried field. + + * conduits/calendar/calendar-conduit.c (start_calendar_server_cb): + Sigh, fixed function prototype. + + * conduits/todo/todo-conduit.h (EToDoConduitContext): Removed + calendar_load_tried field. + + * conduits/todo/todo-conduit.c (start_calendar_server_cb): Fixed + function prototype. + +2001-01-16 JP Rosevear <jpr@ximian.com> + + * conduits/todo/todo-conduit.c (print_local): fix debug output + (print_remote): ditto + +2001-01-15 JP Rosevear <jpr@ximian.com> + + * pcs/cal-backend.c (cal_backend_compute_changes): accomadate tasks + in their new dir + + * conduits/todo/todo-conduit.c (start_calendar_server): ditto + +2001-01-15 JP Rosevear <jpr@ximian.com> + + * conduits/todo/todo-conduit.c (print_local): prevent segfaults and + buffer overflows. + (print_remote): ditto + + * conduits/calendar/calendar-conduit.c: as above + +2001-01-14 Damon Chaplin <damon@helixcode.com> + + * gui/e-calendar-table.c (E_CALENDAR_TABLE_SPEC): changed the expansion + values so that small text fields are 1.0, all the date fields and the + URL field are 2.0, and the Summary is 3.0. Hopefully the user will + resize the fields as desired, but at least this is a better start. + +2001-01-14 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/Makefile.am: pass -module and -avoid-version to + conduit linker + + * conduits/todo/Makefile.am: ditto + +2001-01-14 Damon Chaplin <damon@helixcode.com> + + * gui/dialogs/task-editor.[hc]: moved #include + <cal-client/cal-client.h> to the .h file. + + * gui/e-tasks.c: load & save the Tasks folders' ETable layout. + Added an option menu to filter tasks by category. + + * gui/gnome-cal.c: use the "Tasks" folder for the TaskPad. + (We may make the actual tasks folder shown a per-calendar option.) + + * gui/tasks-control.c (tasks_control_new_task_cmd): added support for + the New Task icon on the toolbar. + + * gui/e-calendar-table.[hc]: we now use an ETableSubsetVariable model + to filter the tasks by a category. And tidied up a little. + + * gui/calendar-model.[hc]: added way to get all the categories used by + the tasks, so we can show an option menu of them. Also a signal which + is emitted when they are changed. + Also allows a default category to be set, which is used to initialize + the 'click-to-add' row. + Also made sure the initialize_value()/get_value() functions don't + return NULL since that can cause a SEGV. + + * gui/e-week-view.c: + * gui/e-day-view.c: set the "fill_color_rgba" arg of the EText items + to black since it doesn't seem to set up a default color properly. + Hopefully this fixes the bug on Solaris where the items appear with + strange colors. + + * gui/widget-util.c (date_edit_new): use the calendar_config function + to set most of the options. It wasn't setting the 12/24 hour option + before. + + * gui/dialogs/task-editor-dialog.glade: added "Undefined" priority. + +2001-01-12 Ettore Perazzoli <ettore@helixcode.com> + + * gui/component-factory.c (factory_fn): Pass NULL as the + @copy_folder_fn arg to `evolution_shell_component_new()'. + +2001-01-12 Miguel de Icaza <miguel@ximian.com> + + * gui/e-calendar-table.c: Add translation strings. + +2001-01-08 Iain Holmes <iain@helixcode.com> + + * gui/calendar-summary.c (create_summary_view): Add a PropertyControl + interface to set whether or not to show tasks and appointments. Add + a PersistStream to remember this. + +2001-01-09 Dave Camp <dave@helixcode.com> + + * gui/Makefile.am: Replaced e-meet-dialog.glade.h with + e-meeting-dialog.glade in glade_messages. + + * gui/e-meeting-dialog.glade: Enabled the translatable string option. + + * gui/e-itip-control.glade: Likewise. + +2001-01-09 Federico Mena Quintero <federico@helixcode.com> + + * idl/evolution-calendar.idl (AlarmNotify): New interface for the + alarm notification system. + + * gui/alarm-notify: New directory for the alarm notification + daemon and its auxiliary stuff. + + * gui/alarm-notify/alarm.[ch]: Moved over from gui/alarm.[ch]. + + * gui/alarm-notify/alarm-queue.[ch]: Moved over from + gui/alarm-notify.[ch]. Renamed functions from alarm_notify_*() to + alarm_queue_*(). + + * gui/alarm-notify/alarm-notify.[ch]: Implementation of the + GNOME::Evolution::Calendar::AlarmNotify interface. + + * gui/Makefile.am (evolution_calendar_LDADD): Removed the + LINK_FLAGS variable and reordered the libraries to remove some + duplicated ones. + (SUBDIRS): Added the alarm-notify directory. + +2001-01-08 Iain Holmes <iain@helixcode.com> + + * gui/calendar-summary.c (generate_html_summary): Get the tasks + correctly. + (generate_html_summary): Mark the tasks as completed if so. + +2001-01-08 Damon Chaplin <damon@helixcode.com> + + * gui/Makefile.am: added new source files for the Tasks folders. + + * gui/e-tasks.[hc]: new widget to encapsulate the Tasks view. + + * gui/tasks-control.[hc]: new files to implement the Tasks control. + + * gui/tasks-control-factory.[hc]: new files to implement the factory + for the Tasks controls. (I think the way I've split the code up is a + lot cleaner than the GnomeCal implementation - the factory file just + contains the factory functions and the control file contains all the + control functions. Maybe we should make GnomeCal like this.) + + * gui/main.c: initialize the Tasks control factory. + + * gui/component-factory.c: added support for the Tasks control. + Also added a "create_folder" function so we can now create new Tasks + and Calendar folders within Evolution. + I'm not a Bonobo expert so someone might want to check these over. + + * gui/calendar-config.[hc]: added convenience functions to configure + the common settings of ECalendar and EDateEdit widgets. + + * gui/dialogs/task-editor.c (task_editor_create_date_edit): + * gui/gnome-cal.c (gnome_calendar_update_config_settings): + * gui/event-editor.c: used function to configure the ECalendars + and EDateEdits. + + * gui/e-day-view-top-item.c (e_day_view_top_item_draw_long_event): + fixed minor bug in format strings. + +2001-01-06 Iain Holmes <iain@helixcode.com> + + * gui/calendar-summary.c (generate_html_summary): Neaten the HTML, + and fix the time printing stuff. Add stuff the get Tasks. + (alarm_fn): Set up an alarm for midnight everynight and regenerate + the HTML for the new day. + +2001-01-05 JP Rosevear <jpr@helixcode.com> + + * gui/event-editor.c (get_widgets): get categories button + (init_widgets): listen for button click + (fill_widgets): fill in the categories area + (dialog_to_comp_object): set the cal component categories + (categories_clicked): throw up the categories dialog and update + when ok is clicked + + * gui/event-editor-dialog.glade: Add categories and contacts buttons + and fields + + * gui/dialogs/task-editor-dialog.glade: Rename button + +2001-01-05 JP Rosevear <jpr@helixcode.com> + + * gui/dialogs/task-editor.c (get_widgets): get categories button + (init_widgets): listen for button click + (fill_widgets): fill in the categories area + (dialog_to_comp_object): set the cal component categories + (categories_clicked): throw up the categories dialog and update + when ok is clicked + + * gui/dialogs/task-editor-dialog.glade: Tweak to name the categories + button and make it active + + * gui/calendar-model.c (get_categories): We can get the string list of + categories directly now + + * cal-util/cal-component.c (cal_component_get_categories): new function + to get the categories list as a string + (cal_component_set_categories): same but for setting + (free_icalcomponent): init the categories var + (scan_categories): kill + (scan_property): assign the prop to the categories var + (cal_component_get_categories_list): deal with renaming var to categories + (cal_component_set_categories_list): fix brokeness + +2001-01-03 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-commands.c (new_calendar): Handle the case where + the calendar view cannot be created; present a warning dialog box. + (new_calendar): Do not show the widget here, since we already show + it in control-factory.c. + + * gui/control-factory.c (control_factory_new_control): Handle the + case where the calendar view cannot be created. + + * gui/component-factory.c (create_view): Ditto. + + * gui/calendar-summary.h: Added prototype for + calendar_summary_factory_init(). + +2001-01-02 Federico Mena Quintero <federico@helixcode.com> + + * gui/alarm-notify.c (add_component_alarms): If the component has + no alarms, do not try to queue them. + (remove_client_alarms): New function to remove all the queued + alarms for a calendar client. + (alarm_notify_remove_client): Remove the client's alarms. + +2001-01-02 Federico Mena Quintero <federico@helixcode.com> + + * gui/dialogs/delete-comp.c (delete_component_dialog): Do not + compose strings so that they can be localized correctly. Also, + convert from UTF8 into the font's encoding. Fixes bug #1030. + + * gui/e-calendar-table.c (delete_component): Pass the widget + argument to delete_component_dialog(). + + * gui/e-day-view.c (e_day_view_on_delete_appointment): Likewise. + + * gui/e-week-view.c (e_week_view_on_delete_appointment): Likewise. + + * gui/event-editor.c (file_delete_cb): Likewise. + + * gui/calendar-commands.c: Use BONOBO_UI_VERB() instead of + BONOBO_UI_UNSAFE_VERB(). Guess what, all of our handler + signatures were wrong. + + * gui/event-editor.c: Likewise. + + * gui/dialogs/task-editor.c: Likewise. + + * gui/goto-dialog.glade: Added some spacing between the month/year + widgets and the calendar widget. + +2001-01-01 Federico Mena Quintero <federico@helixcode.com> + + * gui/gnome-cal.c (gnome_calendar_destroy): Unconditionally remove + the client from the alarm notification system. + Removed all the obsolete alarm code. + + * gui/event-editor.c: Removed some crufty externs left over from + Gnomecal. + + * gui/calendar-commands.c: #include "goto.h" + Removed crufty variables left over from Gnomecal. + (new_calendar): Do not take a full_name parameter. + (init_username): Removed function. + (init_calendar): Wheeeeeeee! Removed crufty function. + (quit_cmd): Removed function. + + * gui/print.c (WEEK_STARTS_ON_MONDAY): Made it unconditionally + FALSE because we do not use the configuration setting anyways. + Sigh, all the printing code needs to be revamped. + +2000-12-26 Iain Holmes <iain@helixcode.com> + + * gui/calendar-summary.c (create_summary_view): Create a shared + BonoboEventSource object. + +2000-12-25 Miguel de Icaza <miguel@helixcode.com> + + * gui/e-day-view.c (e_day_view_init): Set draw background to FALSE. + (e_day_view_reshape_long_event): ditto. + (e_day_view_reshape_day_event): ditto. + +2000-12-22 JP Rosevear <jpr@helixcode.com> + + * gui/dialogs/delete-comp.c (delete_component_dialog): Clean up + translatable strings for translators, fixes bug 993 + +2000-12-22 JP Rosevear <jpr@helixcode.com> + + * gui/goto.c (create_ecal): Make sure the current month is shown + when the dialog pops up. + + * gui/goto-dialog.glade: Remove flicker + +2000-12-22 JP Rosevear <jpr@helixcode.com> + + * pcs/cal-backend-file.c (cal_backend_file_get_alarms_for_object): + account for the case where there are no alarms, fixes crash + +2000-12-22 JP Rosevear <jpr@helixcode.com> + + * gui/goto.c (ecal_date_range_changed): New function to keep the + ecal marked properly + (create_ecal): move more creation code here, update marks + (goto_dialog_init_widgets): listen for date_range_changed signal + in the ecal + + * gui/calendar-commands.c (init_calendar): Remove ancient gnomecal + cruft + + * gui/mark.[hc], gui/prop.c: Remove ancient gnomecal code that is + no longer needed, last bit of bug 904 + +2000-12-22 JP Rosevear <jpr@helixcode.com> + + * gui/goto-dialog.glade.h: translations + + * gui/goto-dialog.glade: new glade file for goto dialog + + * gui/gnome-cal.c (setup_widgets): Set date navigator attributes + + * gui/calendar-commands.h: remove prototype + + * gui/goto.h: Add prototype + + * gui/Makefile.am: Add glade file stuff + + * gui/gnome-cal.c (setup_widgets): Use accessors to configure the + calendar item properly + +2000-12-21 Federico Mena Quintero <federico@helixcode.com> + + Alarm trigger queueing for the GUI part. + + * gui/alarm-notify.[ch]: New files with the high-level alarm + notification system; mostly moved over from gnome-cal.c. The + low-level timer stuff is still in alarm.[ch]. + + * gui/alarm-notify.c (alarm_notify_init): New function to + initialize the alarm notification system. + (alarm_notify_done): New function to shut down the alarm + notification system. + (alarm_notify_add_client): New function to start monitoring a + calendar client for alarm notification. + (alarm_notify_remove_client): New function to stop monitoring a + client. + + * gui/alarm.h (AlarmDestroyNotify): Also pass in the alarm ID so + the callback may know which ID is being destroyed. + + * gui/alarm.c (clear_itimer): New function. + (pop_alarm): Use clear_itimer(). + (alarm_done): New function to shut down the timer system. + (alarm_add): Add some preconditions. Do not call the destroy + notification function if we could not create the alarm. + (alarm_ready): Pass the alarm ID to the destroy notify function. + (alarm_remove): Likewise. Also, add some preconditions. + + * gui/gnome-cal.c: Removed the alarm notification functions from + here since they are now in alarm-notify.c. + (gnome_calendar_construct): Register the client with + alarm_notify_add_client(). + (gnome_calendar_destroy): Use alarm_notify_remove_client() to + unregister the client. + (obj_updated_cb): Do not do any alarm-related stuff. + (obj_removed_cb): Likewise. + + * gui/main.c (main): Shut down the alarm timer system. + (main): Initialize and shut down the alarm notification system. + + * gui/Makefile.am (evolution_calendar_SOURCES): Added + alarm-notify.[ch] to the list of sources. + + * gui/calendar-model.c (calendar_model_set_cal_client): Only + connect to the "cal_loaded" signal if the client is not already + loaded. + + * gui/e-day-view.c (e_day_view_set_cal_client): Likewise. + + * gui/e-week-view.c (e_week_view_set_cal_client): Likewise. + + * gui/e-itip-control.c (update_calendar): Connect to "cal_loaded" + before issuing the load request. + +2000-12-21 Iain Holmes <iain@helixcode.com> + + * gui/calendar-summary.c: Updated for new executive summary. + + * gui/component-factory.c: Reenabled the summary. + + * gui/GNOME_Evolution_Calendar.oafinfo: Added the summary. + +2000-12-20 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.h: Fix erroneous documentation + + * conduits/todo/todo-conduit.c (comp_from_remote_record): if + !is_empty_time rather than is_empty_time + (e_todo_context_new): Return a pointer rather than fill in + a parameter + (e_todo_context_foreach_change): Free just the key + (e_todo_context_destroy): Plug this enormous leakage. I had assumed + i had done this earlier, which isn't too bright when anything beyond + 2 minutes ago is fuzzy. + (comp_from_remote_record): Kill warnings + (post_sync): Destroy the map later + (conduit_get_gpilot_conduit): Fix e_todo_context_new params + + * conduits/calendar/calendar-conduit.[hc]: Similar to above + +2000-12-19 JP Rosevear <jpr@helixcode.com> + + * conduits/calendar/calendar-conduit.c: Remove pointless comment + + * conduits/todo/todo-conduit.c (is_empty_time): add utility function + (comp_from_remote_record): use it + +2000-12-19 JP Rosevear <jpr@helixcode.com> + + * conduits/calendar/calendar-conduit.c (local_record_from_comp): + Convert cal component strings to pilot character set + (comp_from_remote_record): vice versa + + * conduits/todo/todo-conduit.c: Same as above + +2000-12-19 Federico Mena Quintero <federico@helixcode.com> + + * pcs/cal-backend-file.c (compute_alarm_range): Fix confusion in + the way the range is expanded. + + * cal-util/cal-component.c (cal_component_alarms_free): Doh, + alarms->alarms is a list, not a generic pointer. Free it properly. + (cal_component_free_pilot_id): Removed unused function. + (cal_component_free_pilot_status): Likewise. + + * gui/main.c (init_bonobo): Use VERSION instead of a hardcoded + string. Pass argc by value, not by reference. Test the return + value of gnome_init_with_popt_table(). + + * cal-client/cal-client.c (cal_client_free_alarms): Oops, missed + implementing this function. + + * cal-util/timeutil.c (print_time_t): Better printing format. + (isodiff_to_secs): Removed unused function. + (isodiff_from_secs): Removed unused function. + (time_day_end): Removed crufty part. + (time_day_begin): Removed crufty part. + (time_day_hour): Removed unused function. + (format_simple_hour): Removed unused function. + (get_time_t_hour): Removed unused function. + (time_from_start_duration): Removed unused function. + + * cal-util/timeutil.h (parse_date): Removed unimplemented, unused + function prototype. + +2000-12-19 Christopher James Lahey <clahey@helixcode.com> + + * gui/gnome-cal.c: Removed prototype for setup_alarm to fix a + warning. + +2000-12-18 Federico Mena Quintero <federico@helixcode.com> + + Alarm instance generation support for the Wombat. + + * idl/evolution-calendar.idl (Cal::CalAlarmInstance): Changed to + have an alarm UID, the trigger time, and the actual occurrence + time. + (Cal::CalComponentAlarms): New structure to hold a pair of a + component and its alarms that trigger in a particular range of + time. + (Cal::getAlarmsInRange): Changed to return a CalComponentAlarmsSeq. + + * cal-util/cal-component.h (CalAlarmInstance): New C-side + structure to match the one on the IDL. + (CalComponentAlarms): Ditto. + (CalAlarmAction): Renamed from CalComponentAlarmAction. + (CalAlarmTriggerType): Renamed from CalComponentAlarmTriggerType. + Encoded the START and END parameters for the RELATED parameter in + this enum, too. Added a NONE value for invalid or missing trigger + specifications. + (CalComponentAlarmTriggerRelated): Removed. + (CalAlarmTrigger): Renamed from CalComponentAlarmTrigger. Renamed + the duration/time fields to rel_duration/abs_time, respectively. + + * cal-util/cal-component.c (cal_component_alarm_get_trigger): + Changed to use the new trigger structure. + (cal_component_alarm_set_trigger): Likewise. + (cal_component_alarm_free_trigger): Removed function. + (cal_component_has_alarms): Count the elements in the + alarm_uid_hash instead of trying to fetch the first alarm subcomponent. + (cal_component_alarms_free): New function to free a + CalComponentAlarms structure. + (CalComponentAlarmPrivate): Added an uid property pointer. + (scan_alarm_property): Scan for the our extension UID property. + (cal_component_alarm_get_uid): New function. + + * pcs/cal-backend.h (CalBackendClass): Changed the signatures of + the ::get_alarms_in_range() and ::get_alarms_for_object() methods. + + * pcs/cal-backend.c (cal_backend_get_alarms_in_range): Changed + signature; use the new method. + (cal_backend_get_alarms_for_object): Likewise. + + * pcs/cal-backend-file.c (compute_alarm_range): New spiffy + function to compute a range of time for alarm occurrences. + (add_alarm_occurrences_cb): New function to add alarms for a + particular occurrence of the component. + (generate_absolute_triggers): New function to add the absolute + alarm triggers. + (generate_alarms_for_comp): New function to generate all the alarm + instances for a component. + (cal_backend_file_get_alarms_in_range): Implemented. + + * pcs/cal.c (Cal_get_alarms_in_range): Use the new CalBackend API. + (Cal_get_alarms_for_object): Likewise. + (build_alarm_instance_seq): Removed old function. + + * cal-util/cal-util.c (cal_alarm_instance_list_free): Removed + function. + + * cal-client/cal-client.c (build_component_alarms_list): New + function to demarshal the component alarms sequence. + (build_alarm_instance_list): New function to demarshal the alarm + instances sequence. + (cal_client_get_alarms_in_range): Updated for the new API. + (cal_client_get_alarms_for_object): Updated for the new API. + + * gui/gnome-cal.c: Temporary #ifdef-ing out of alarm-related stuff + to make it build. + +2000-12-15 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/timeutil.[ch] (time_from_isodate): Removed unused + function, a relic from Gnomecal. + +2000-12-15 Dan Winship <danw@helixcode.com> + + * cal-util/timeutil.c (time_from_isodate): Fix the sign in the + HAVE_TM_GMTOFF case + +2000-12-15 Federico Mena Quintero <federico@helixcode.com> + + * gui/Makefile.am (evolution_calendar_SOURCES): Removed getdate.y. + We no longer use it; it is a relic from Gnomecal. + + * gui/getdate.y: Removed file. + +2000-12-14 Federico Mena Quintero <federico@helixcode.com> + + Fixes bug #955. + + * gui/weekday-picker.c (WeekdayPickerPrivate): Added a field for + the week_start_day, to be used in the same way as + calendar-config.h defines it. Removed the week_starts_on_monday + flag. + (day_event_cb): Use the week_start_day. + (colorize_items): Likewise. + (configure_items): Likewise. + (weekday_picker_set_week_start_day): New function. + (weekday_picker_get_week_start_day): New function. + (weekday_picker_set_week_starts_on_monday): Removed function. + (weekday_picker_get_week_starts_on_monday): Removed function. + + * gui/widget-util.[ch]: New files with utilities for creating or + configuring widgets. + + * gui/widget-util.c (date_edit_new): New function to create an + EDateEdit configured with the calendar's preferences; moved over + from event-editor.c. + + * gui/event-editor.c (make_recur_weekly_special): Use + weekday_picker_set_week_start_day() and the corresponding function + from calendar-config.h. + (init_widgets): Likewise. + (make_date_edit_with_time): Removed function. + (make_recur_ending_until_special): Use date_edit_new(). + (make_date_edit): Likewise. + + * gui/dialogs/task-editor.c (task_editor_create_date_edit): Likewise. + + * gui/event-editor-dialog.glade: Removed references to + make_date_edit_with_time(); replace them with make_date_edit(). + + * gui/Makefile.am (evolution_calendar_SOURCES): Added + widget-util.[ch] to the list of sources. + +2000-12-14 Federico Mena Quintero <federico@helixcode.com> + + * gui/e-calendar-table.c (E_CALENDAR_TABLE_SPEC): Reset the widths + of the columns with pixbufs to the actual pixbufs' sizes; now + ETable properly computes its column widths so we do not need to + add extra padding here. + +2000-12-14 Dan Winship <danw@helixcode.com> + + * gui/calendar-model.c (_XOPEN_SOURCE): #define this to 500, not + nothing. Also, move this bit after the other #includes to + prevent potential messiness. + +2000-12-13 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (ensure_mandatory_properties): Even + though icaltime_from_timet() now properly ignores the is_utc + argument since time_t values *are* in UTC by definition, we were + passing FALSE for that argument's value in a bunch of places. So + although it is ignored, changed them to TRUE for consistency. + Hopefully newer versions of libical will remove that argument + entirely since it does not make sense to speak of non-absolute + time_t values. + + * cal-util/cal-recur.c (cal_recur_set_rule_end_date): Likewise. + + * conduits/calendar/calendar-conduit.c (comp_from_remote_record): Likewise. + + * conduits/todo/todo-conduit.c (comp_from_remote_record): Likewise. + + * gui/dialogs/task-editor.c (dialog_to_comp_object): Likewise. + + * gui/e-day-view.c (e_day_view_on_new_appointment): Likewise. + (e_day_view_on_delete_occurrence): Likewise. + (e_day_view_on_unrecur_appointment): Likewise. + (e_day_view_on_unrecur_appointment): Likewise. + (e_day_view_finish_long_event_resize): Likewise. + (e_day_view_finish_resize): Likewise. + (e_day_view_key_press): Likewise. + (e_day_view_on_top_canvas_drag_data_received): Likewise. + (e_day_view_on_main_canvas_drag_data_received): Likewise. + + * gui/e-week-view.c (e_week_view_key_press): Likewise. + (e_week_view_on_new_appointment): Likewise. + (e_week_view_on_delete_occurrence): Likewise. + (e_week_view_on_unrecur_appointment): Likewise. + + * gui/event-editor.c (simple_recur_to_comp_object): Likewise. + (recur_to_comp_object): Likewise. + (dialog_to_comp_object): Likewise. + + * gui/gnome-cal.c (gnome_calendar_new_appointment): Likewise. + +2000-12-13 Christopher James Lahey <clahey@helixcode.com> + + * cal-util/cal-recur.c: #if 0ed cal_obj_date_only_compare_func. + (cal_object_get_rdate_end): Changed this function to get rid of a + possible uninitialized error on the rdate function. + + * gui/calendar-model.c: Fixed some warnings involving the #define + _XOPEN_SOURCE lines here. + + * gui/component-factory.c: #ifdef WANT_THE_EXECUTIVE_SUMMARYed out + the summary_factory object since it's unused if + WANT_THE_EXCUTIVE_SUMMARY is not defined. + + * gui/e-day-view.c: #if 0ed out e_day_view_remove_event_cb. + (obj_updated_cb): #ifndef NO_WARNINGSed out a #warning. + + * gui/e-week-view-event-item.c (e_week_view_event_item_draw): Made + it so that + + * gui/e-week-view.c (obj_updated_cb): #ifndef NO_WARNINGSed out a + #warning. + +2000-12-13 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/Makefile.am: Revert federico's change for now + because of libtool limitations with ldadding shared libtool + libs + + * conduits/calendar/Makefile.am: ditto + +2000-12-12 JP Rosevear <jpr@helixcode.com> + + * gui/dialogs/task-editor.c (task_editor_set_todo_object): Use + set_title_from_comp + (save_todo_object): ditto + (set_title_from_comp): Make sure the title is encoded properly (as in + event-editor) + +2000-12-12 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (get_text_list): Constify for new + libical API. + (set_text_list): Likewise. + + * cal-util/cal-recur.c (cal_recur_get_rule_end_date): Likewise. + (cal_recur_set_rule_end_date): Likewise. + + * gui/e-itip-control.c (find_attendee): Likewise. + (pstream_load): Likewise. + + * gui/gnome-cal.c (released_event_object_cb): Removed unused function. + + * gui/dialogs/task-editor.c (status_string_map): Removed unused + variable. + +2000-12-11 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/Makefile.am (test_recur_LDADD): Link to the libical + shared library. + + * cal-client/Makefile.am (client_test_LDADD): Likewise. + + * conduits/calendar/Makefile.am (libecalendar_conduit_la_LIBADD): + Likewise. + + * gui/Makefile.am (LINK_FLAGS): Likewise. + +2000-12-11 Federico Mena Quintero <federico@helixcode.com> + + This is to make things work with libical 0.21helix1 and later. + Warnings remain because at last libical was constified; will take + care of those tomorrow. + + * cal-util/timeutil.h: #include <ical.h> instead of <icaltypes.h> + + * gui/e-itip-control.c: Likewise. + + * gui/e-meeting-edit.c: Likewise. + + * gui/itip-utils.h: Likewise. + + * cal-util/cal-component.c (alarm_uid_from_prop): constify. + (cal_component_get_status): Updated for new libical API. + (cal_component_set_status): Likewise. + + * gui/calendar-model.c (ensure_task_complete): Removed unused + status code. + (ensure_task_not_complete): Update for new status API. + + * gui/dialogs/task-editor.c (status_string_to_value): Removed + function. + (status_value_to_string): Removed function. + (status_string_map): Removed variable. + (fill_widgets): Update for new status API. + (dialog_to_comp_object): Likewise. + +2000-12-11 Damon Chaplin <damon@helixcode.com> + + * cal-util/cal-recur.c (generate_instances_for_chunk): updated the + tests on the start & end time just before calling the callback. It + was skipping occurrences that started before the required interval's + start time, which was wrong. We want all occurrences that intersect + the interval. + (cal_obj_time_weekday): removed the CalRecurrence* argument, since it + isn't needed. + +2000-12-11 Damon Chaplin <damon@helixcode.com> + + * gui/event-editor.c: added changed flags and added calls to a new + function event_editor_set_changed() to set & reset this flag. + Added prompt_to_save_changed() which is called when the user + selects File/Close or the window's close button. + Fixed the 'All day event' toggle button. + Made the 'Alarm' page sensitive as appropriate when filling widgets. + (Though note that the alarm widgets are not being set yet.) + + * gui/dialogs/task-editor.c: added changed flag as above. + + * gui/event-editor-dialog.glade: used good names for all the + classification radio buttons so we can access them in the code. + + * gui/event-editor.c (init_widgets): use the "show week numbers" config + option in the recurrence preview calendar. + + * gui/e-day-view.c (e_day_view_update_event_label): use 9:00 instead + of 09:00 in the main view, as we do everywhere else now. It means the + times won't line up, but they are easier to read which I think is + better. + Added support for Page Up/Down, though I think it should move the + selection rather than just scroll the canvas. + + * cal-util/cal-recur.c (generate_instances_for_chunk): removed the + end parameter since we should be using the chunk end time now. + Added single_rule parameter for when we are generating the + occurrences of a single RRULE, in which case the event's start date is + not included in the occurrences output (unless it results from the + RRULE expansion). Both of these fix problems when using COUNT. + + * gui/gnome-cal.c (gnome_calendar_on_date_navigator_selection_changed): + fixed bug when checking if the new start day starts on the week start + day. If you select a complete week it should now show the Week view. + +2000-12-08 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (dialog_to_comp_object): Free the strings we + get from the editables. + + * gui/dialogs/task-editor.c (dialog_to_comp_object): Likewise. + This sucks; this code should be shared between the two dialogs. + +2000-12-08 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (fill_widgets): Free the dates we get from + the component. + +2000-12-08 JP Rosevear <jpr@helixcode.com> + + * gui/e-calendar-table.c (e_calendar_table_init): Attach signal + handlers to the e_scrolled_table's etable rather than to the + e_scrolled_table directly + (e_calendar_table_on_double_click): This signal provides more + params now + +2000-12-07 Christopher James Lahey <clahey@helixcode.com> + + * gui/e-calendar-table.c: Got rid of code referencing the + ETableScrolled proxy functions. + +2000-12-07 JP Rosevear <jpr@helixcode.com> + + * conduits/calendar/calendar-conduit.c (post_sync): Ugly hack for syncing + until pcs can be altered (longer term) + + * conduits/todo/todo-conduit.c (post_sync): ditto + +2000-12-07 Chris Toshok <toshok@helixcode.com> + + * cal-client/Makefile.am (client_test_LDADD): add + EXTRA_GNOME_LIBS. + +2000-12-07 JP Rosevear <jpr@helixcode.com> + + * pcs/cal-backend.c (cal_backend_compute_changes_foreach_key): Create + an empty cal component if the object has been deleted. + + * idl/evolution-calendar.idl: Bit shift the change type constants + properly + +2000-12-07 Federico Mena Quintero <federico@helixcode.com> + + * cal-client/cal-client.c (cal_client_generate_instances): Unref + the component from the objects list; it got referenced as many + times as appropriate for the instances list. + +2000-12-06 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (file_delete_cb): Confirm before deleting the + event. + +2000-12-06 JP Rosevear <jpr@helixcode.com> + + * gui/e-week-view.c (e_week_view_init): unref the pixbuf when + finished with it + +2000-12-06 Federico Mena Quintero <federico@helixcode.com> + + Fixes bug #920. + + * gui/e-calendar-table.c (delete_component): New function. + (e_calendar_table_on_delete_task): Use delete_component(). + (e_calendar_table_on_key_press): Likewise. Also, mark the event + as handled. + + * gui/calendar-model.c (calendar_model_get_component): Renamed + function from calendar_model_get_cal_object(). + (calendar_model_delete_task): Removed function. + + * gui/dialogs/delete-comp.[ch]: New files with the dialog for + deleting a calendar component. + + * gui/e-day-view.c (e_day_view_on_delete_appointment): Confirm + before actually deleting the appointment. + + * gui/e-week-view.c (e_week_view_on_delete_appointment): Likewise. + + * gui/dialogs/Makefile.am (libcal_dialogs_a_SOURCES): Added + delete-comp.[ch] to the list of sources. + + * cal-util/cal-component.c (cal_component_destroy): Free the alarm + UID hash. + +2000-12-06 JP Rosevear <jpr@helixcode.com> + + * pcs/cal.c (build_change_seq): kill + (Cal_get_changes): return the corba sequence directly + + * pcs/cal-backend.h: update prototype + + * pcs/cal-backend.c (cal_backend_compute_changes_foreach_key): Build + the corba struct rather than the old calobjchange thing + (cal_backend_compute_changes): ditto. build and return the actual + corba sequence rather than the list of calobjchanges + (cal_backend_get_changes): return the corba sequence + + * cal-util/cal-util.h: Remove CalObjChange cruft + + * cal-util/cal-util.c (cal_obj_change_list_free): Kill + +2000-12-06 JP Rosevear <jpr@helixcode.com> + + * cal-util/cal-util.c: + + * conduits/calendar/calendar-conduit.c (map_name): Update so as not to conflict + with calendar + (next_changed_item): update to use CalClientChange instead of CalObjChange + (compute_status): ditto + (pre_sync): ditto + (for_each_modified): since we now have the cal component we can call + local_record_from_comp directly + + * conduits/todo/todo-conduit.c: same as above + + * pcs/cal-backend.c: Remove much logging cruft + (cal_backend_compute_changes): Calculate the changes based on the + hashed database + (cal_backend_get_changes): call cal_backend_compute_changes + (cal_backend_compute_changes_foreach_key): hash callback for + calculating deletions + + * pcs/cal-backend.h: update protype, remove logging cruft from + object + + * pcs/cal.c (build_change_seq): dup the calobj rather than the uid + now + (Cal_get_changes): rename from Cal_get_changed_uids + (cal_get_epv): reflect name change in epv + + * cal-util/cal-util.c (cal_obj_change_list_free): update assertion + + * cal-util/cal-util.h: CalObjChange now returns the entire ical + component, update the change types. This should all go away shortly + + * idl/evolution-calendar.idl: getChangedUIds -> getChanges. + CalObjChange now contains the calobj rather than the uid, update + the change types + + * cal-client/cal-client.c (cal_client_get_changes): rename from + cal_client_get_changed_uids to make idl and addressbook + + * cal-client/cal-client.h: Update prototype + + * cal-client/cal-client.c (build_change_list): Build a list of + CalClientChange instead of CalObjChange + + * cal-client/cal-client-types.c (cal_client_change_list_free): Free + a glist of CalClientChanges + + * cal-client/cal-client-types.h: New file. Declarations for + CalClientChange. + + * cal-client/Makefile.am: Build new files + +2000-12-06 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/Makefile.am: Fix my build stupidty READ THE MACRO + + * conduits/calendar/Makefile.am: ditto + +2000-12-04 JP Rosevear <jpr@helixcode.com> + + * gui/e-day-view-time-item.c (e_day_view_time_item_get_column_width): + Initialize max_large_digit_width to 0 to prevent crazy sizing issues. + +2000-12-04 Dan Winship <danw@helixcode.com> + + * gui/e-itip-control.c: Remove mysterious #include inserted by + mmeeks to break the build. + +2000-12-01 Federico Mena Quintero <federico@helixcode.com> + + Fixes bug #918. + + * gui/weekday-picker.c (WeekdayPickerPrivate): Added a field for a + set of blocked days. + (weekday_picker_set_blocked_days): New function to configure a set + of days that cannot be modified by the user. + (weekday_picker_get_blocked_days): Query function for the above. + (day_event_cb): Block the appropriate days from being modified. + + * gui/event-editor.c (get_start_weekday_mask): New function to + compute a day mask for the start day of a calendar component. + (set_recur_special_defaults): New function to set sane defaults + for the recurrence special widgets. + (fill_recurrence_widgets): Use set_recur_special_defaults(). + (make_recur_weekly_special): Block the appropriate days. + +2000-12-01 Federico Mena Quintero <federico@helixcode.com> + + * gui/control-factory.c (set_prop): Removed debugging message. + (control_factory_init): Ditto. + + * gui/calendar-commands.c (calendar_set_uri): Ditto. + + * gui/main.c (main): Ditto. + + * gui/event-editor.c (set_title_from_comp): New function to + generate a title and convert it from UTF8 before setting it on the + window. + (save_event_object): Uset set_title_from_comp(). + (event_editor_set_event_object): Likewise. + +2000-11-30 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c: Debug message cleanups + (comp_from_remote_record): Properly set the ical description field + + * conduits/calendar/calendar-conduit.c (is_empty_time): New utility + functions that look for all 0's in a struct tm + (comp_from_remote_record): use above + (local_record_from_comp): Correctly set the repeatForever value so + that we repeat forever instead of a really long time + (comp_from_remote_record): Only set the cal component recurrence + until field when repeatForever is 0 + +2000-11-30 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-itip-control.c: fixed a bug that caused the calendar to + segfault when the iTip control was destroyed. + +2000-11-30 JP Rosevear <jpr@helixcode.com> + + * conduits/calendar/calendar-conduit.c (local_record_from_comp): Empty + by_day entries are no longer indicated by ICAL_RECURRENCE_ARRAY_MAX not + SHRT_MAX. Calculate weekly and monthly by date recurrences properly + (get_pilot_day): Convert ical day to corresponding integer for pilot day + +2000-11-30 JP Rosevear <jpr@helixcode.com> + + * conduits/calendar/calendar-conduit.c: Debug message cleanups + (get_ical_day): Fix off-by-one error which affected weekly occurences. + (comp_from_remote_record): Monthly by day and by date were reversed + (nth_weekday): function taken from event-editor.c that encodes BYDAY + values - this needs to be in libical really. + (comp_from_remote_record): Don't set the description if the pilot note + is null. Rejig so that we don't have to free objects. + +2000-11-28 Federico Mena Quintero <federico@helixcode.com> + + Upgrade of the alarm framework. We now access alarms by a unique + identifier. This UID is added as an extension property to alarm + subcomponents when their parent components are scanned by + CalComponent. + + * cal-util/cal-component.c (CalComponentPrivate): Added a hash + table of alarm UIDs -> alarm properties. + (cal_component_init): Initialize priv->alarm_uid_hash. + (free_icalcomponent): Free the elements in the + priv->alarm_uid_hash. + (scan_alarm): New function to add scan an alarm subcomponent and + ensure that it has an alarm UID extension property so that we can + add it to our mapping table. + (cal_component_get_first_alarm): Removed function. + (cal_component_get_next_alarm): Removed function. + (cal_component_get_alarm_uids): New function. + (cal_component_get_alarm): New function. + +2000-11-28 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c (local_record_to_pilot_record): Return + a struct rather than a pointer to a struct + (compare): local_record_to_pilot_record now returns a struct + (prepare): ditto + (free_prepare): remove as per gnome-pilot changes + (conduit_get_gpilot_conduit): don't listen for free_prepare signal + + * conduits/calendar/calendar-conduit.c: Same as above + +2000-11-28 Federico Mena Quintero <federico@helixcode.com> + + * gui/e-calendar-table.c (E_CALENDAR_TABLE_SPEC): Reformatted the + table spec to make it easier to read. + + * gui/tag-calendar.c: Oops, Damon wrote this, not me. Fixed the + Authors line. + +2000-11-28 Damon Chaplin <damon@helixcode.com> + + * gui/e-day-view*.[hc]: + * gui/e-week-view*.[hc]: finished 12-hour support and tried to tidy + up & comment the drawing code in places. Also fixed a couple of bugs I + spotted. All the options on the 'Calendar' page should now work. + +2000-11-28 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-meeting-edit.c: removed some debugging code that I had, + which might have caused problems. + +2000-11-27 Jesse Pavel <jpavel@helixcode.com> + + * gui/calendar-model.c: added a preliminary change to have + Assigned To-Do items have a corresponding icon. + +2000-11-27 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c (free_prepare): Ditto + + * conduits/calendar/calendar-conduit.c (free_prepare): Adjust + free_prepare to the correct signal parameters. Don't actually + do anything - there is a semantic discrepancy that needs to be + resolved. + +2000-11-26 Damon Chaplin <damon@helixcode.com> + + * gui/e-day-view.c (e_day_view_set_days_shown): == instead of =. + +2000-11-26 Damon Chaplin <damon@helixcode.com> + + * gui/gnome-cal.c: added more support for config settings. + + * gui/e-week-view.[hc]: + * gui/e-day-view.[hc]: added support for setting - show event end + times, week start day and 12-hour format (unfinished). + + * gui/e-day-view-time-item.c: started 12-hour support. + + * gui/tag-calendar.c (prepare_tag): use end_day + 1 since we want to + include the last day. + + * gui/event-editor.c (set_all_day): minor change when turning all_day + off - set the event end to one hour after the event start if it is on + or before the start time. Also added more comments to make it a bit + clearer. + + * cal-util/cal-recur.c (cal_obj_time_add_days): use a gint for day + rather than a guint since we now support -ve days. + Also fixed bug with weekly recurrences. + + * gui/dialogs/task-editor.c (task_editor_create_date_edit): use + config settings. + + * gui/dialogs/cal-prefs-dialog.c (cal_prefs_dialog_update_config): + updated EDateEdit calls. + +2000-11-24 Federico Mena Quintero <federico@helixcode.com> + + * gui/e-calendar-table.c (e_calendar_table_init): Unref the ETable + extras. + +2000-11-24 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (free_icalcomponent): DOH, fixed + reversed test for the presence of the icalcomp's parent. This was + causing memory leaks in the Wombat and elsewhere. + + * pcs/cal-backend.c (cal_backend_set_node_timet): Plug leak. + +2000-11-24 Federico Mena Quintero <federico@helixcode.com> + + * pcs/cal-backend-file.c (scan_vcalendar): Use the new libical + external iterators (icalcomponent_begin_component() and friends); + the internal iterators are deprecated. + + * cal-util/test-recur.c (generate_occurrences): Likewise. + + * gui/e-itip-control.c (pstream_load): Likewise. + + * gui/e-meeting-edit.c (e_meeting_edit): Likewise. + + * pcs/cal-backend.c (cal_backend_log_entry): Plug leak. + (cal_backend_log_sync): Free the entry->uid. + + * util/icalendar-save.[ch]: + * util/icalendar-test.c: + * util/icalendar.[ch]: Removed obsolete files. + +2000-11-21 Federico Mena Quintero <federico@helixcode.com> + + * gui/task.xpm: Remove the check because it makes it look like the + task is already completed. This fixes bug #819. + + * gui/task-recurring.xpm: Make it use a prettier overlaid icon. + + * gui/task-*.xpm: Made the things look like little spiral-bound + notebooks. + + * gui/e-calendar-table.c (E_CALENDAR_TABLE_SPEC): Make the default + column order be icon/completed/summary. You may need to erase + your ~/evolution/config/TaskPad for this to appear. + +2000-11-21 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-model.c (calendar_model_is_cell_editable): The icon + column is not editable! + + * gui/calendar-commands.c (todo_properties_changed): Removed. + (time_format_changed): Removed. + (colors_changed): Removed. + + * gui/calendar-commands.h: + * gui/prop.c (prop_apply): + * gui/calendar-commands.c (init_calendar): Removed the old to-do + list crap. + + * gui/gncal-todo.[ch]: Removed obsolete files. + + * gui/Makefile.am (evolution_calendar_SOURCES): Removed gncal-todo.[ch]. + + * gui/gnome-cal.c (gnome_calendar_todo_properties_changed): Removed. + (gnome_calendar_time_format_changed): Removed. + (gnome_calendar_colors_changed): Removed. + +2000-11-21 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-itip-control.c: fixed the stupid Bonobo widget size + allocation bug that had been vexing me. + + * gui/e-itip-control.glade: I removed some hacks that were + necessary for said size bug. + +2000-11-16 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-itip-control.c, gui/e-meeting-edit.c: added cancellation + code to our program; people can cancel meetings, which is the best + thing to do for most meetings. + +2000-11-13 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-itip-control.c: made the REPLY code actually work. + +2000-11-13 Jesse Pavel <jpavel@helixcode.com> + + * gui/itip-utils.[ch]: I created this file to store some commonly used enumeration to + string mappings and functions. + + * gui/Makefile.am: this was changed to reflect the addition of the above file. + + * gui/e-itip-control.c: added code to take action on a REPLY message. + + * gui/e-meeting-edit.c: bug fixes. + +2000-11-12 Federico Mena Quintero <federico@helixcode.com> + + OK, bugzilla bug #829 is fixed and that does not redeem me from + extreme procrastination. Wheeeeeeeeeeeeeeee! + + * gui/event-editor-dialog.c: Changed the "Rule view" label to + "Preview" + +2000-11-12 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (make_recur_ending_count_special): Misspelled + "occurrences". + (fill_recurrence_widgets): Sensitize the "Custom recurrence" radio + button as appropriate. + (sensitize_recur_widgets): Resurrected the recurrence custom + warning label. + (get_widgets): Load the recurrence custom warning bin. + + * gui/event-editor-dialog.glade: Add an empty alignment for the + recurrence custom warning label. + +2000-11-12 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (recur_preview_date_range_changed_cb): New + function; re-tag the calendar when its date range changes. + (init_widgets): Connect to "date_range_changed" on the recurrence + preview calendar. + (make_recur_weekly_special): Connect to "changed" on the weekday + picker. + (recur_weekday_picker_changed_cb): New function; re-tag the calendar. + (month_day_menu_selection_done_cb): Re-tag the calendar. + (recur_month_index_value_changed_cb): Likewise. + (recur_ending_until_changed_cb): Likewise. + (recur_ending_count_value_changed_cb): Likewise. + (make_recur_monthly_special): Connect to "value_changed" on the + adjustment of the month index. + (make_recur_ending_until_special): Connect to "changed" on the + ending-until date picker. + (make_recur_ending_count_special): Connect to "value_changed" on + the ending-count adjustment. + (init_widgets): Set to zero the maximum number of selectable days + in the recurrence preview calendar. Set the week_start_day from + the calendar's configuration. + +2000-11-12 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (clear_widgets): Block the signals as appropriate. + (fill_ending_date): Ditto. + (fill_recurrence_widgets): Ditto. + (recurrence_type_toggled_cb): Only sensitize the widgets and + preview the recurrence if the toggle button is active. + +2000-11-12 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (recur_to_comp_object): Clear the rdate and + exrule lists from the component if we are setting a simple + recurrence. + (recur_to_comp_object): Set the exdate list here instead of in + dialog_to_comp_object(). + (preview_recur): New function to tag the recurrence preview + calendar based on the information from the dialog box. + (fill_exception_widgets): Fill the exception widgets here; moved + over from fill_widgets(). + (fill_recurrence_widgets): Call preview_recur(). Also, call + fill_exception_widgets() first of all. + (recurrence_type_toggled_cb): Call preview_recur(). + (recur_interval_selection_done_cb): Likewise. + (recur_ending_selection_done_cb): Likewise. + (recurrence_exception_add_cb): Likewise. + (recurrence_exception_modify_cb): Likewise. + (recurrence_exception_delete_cb): Likewise. + (date_changed_cb): Likewise. + (recur_interval_value_changed_cb): Likewise, new function. + + * gui/tag-calendar.[ch]: New files with utilities for tagging + calendars. mark.[ch] should go away some day. + + * gui/tag-calendar.c (tag_calendar): Moved over from + gnome_calendar_tag_calendar(). Take in a CalClient instead of a + GnomeCalendar. Added API docs. + (tag_calendar_by_comp): New function to tag a calendar based on a + single calendar component instead of a whole client. + + * gui/gnome-cal.c (initial_load): Use tag_calendar_by_client(). + (obj_updated_cb): Likewise. + (obj_removed_cb): Likewise. + (gnome_calendar_on_date_navigator_date_range_changed): Likewise. + (editor_closed_cb): Free the closure. + (destroy_editor_cb): Renamed from free_uid(). Do not free the + UID; just unref the event editor. Our destroy handler to it will + free things properly. This will also cause the corresponding + calendar client to be unrefed. + (editor_closed_cb): Use a flag on the GnomeCalendar to decide + whether to remove the editor from the hash table. This is sort of + icky. + + * gui/calendar-model.c (obj_updated_cb): If the object is new, we + have to use e_table_model_row_inserted(), not row_changed(). + Thanks to JP Rosevear for reporting this. + + * gui/Makefile.am (evolution_calendar_SOURCES): Added + tag-calendar.[ch] to the list of sources. + +2000-11-11 Matt Bissiri <bissiri@eecs.umich.edu> + + * gui/evolution-calendar.oafinfo: + Update the remaining "IDL:Evolution*" to "IDL:GNOME/Evolution*" + to sync up with yesterday's IDL re-scoping. + +2000-11-10 Michael Meeks <michael@helixcode.com> + + * gui/Makefile.am ($(IDL_GENERATED)): sort include order. + + * pcs/Makefile.am (idl_flags): ditto. + +2000-11-10 JP Rosevear <jpr@helixcode.com> + + * conduits/calendar/calendar-conduit.c (for_each_modified): Inc the + iterator before finding the next changed item. + + * conduits/todo/todo-conduit.c (for_each_modified): ditto + +2000-11-09 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-itip-control.c: I wrote the code so that recipients of meeting requests + can reply appropriately. + +2000-11-09 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-meeting-edit.c: fixed a bug that would make the calendar segfault + if the meeting editor were called up twice without first saving the + component. + +2000-11-08 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-itip-control.c, gui/e-itip-control.glade: updated the GUI + to allow the user to add PUBLISHed events to his calendar, and created + unworking buttons for meeting requests. + +2000-11-08 Federico Mena Quintero <federico@helixcode.com> + + These changes fix bugzilla bugs #874 and #875. + + * cal-util/cal-component.c (cal_component_get_exdate_list): Return + a list of CalComponentDateTime instead of simple struct + icaltimetype objects. Exception date properties *can* contain a + timezone parameter, so we need to include those if they are + present. + (cal_component_set_exdate_list): On the input, handle a list of + CalComponentDateTime structures. On the internals, handle a list + of struct datetime instead of plain properties. + (cal_component_free_exdate_list): Handle a list of + CalComponentDateTime structures. + (scan_exdate): Create a list of struct datetime structures. + (free_icalcomponent): Free the exdate_list properly. + + * cal-util/cal-recur.c (generate_instances_for_chunk): Use the + proper types for exception dates. + + * gui/comp-util.h: + * gui/comp-util.c: New files with utilities for manipulating + calendar component objects. + (cal_comp_util_add_exdate): New function. + + * gui/Makefile.am (evolution_calendar_SOURCES): Added + comp-util.[ch] to the list of sources. + + * gui/e-day-view.c (add_exdate): New convenience function to add + an exception date to a calendar component. + (e_day_view_on_unrecur_appointment): Use cal_comp_util_add_exdate(). + (e_day_view_on_delete_occurrence): Likewise. + + * gui/e-week-view.c (e_week_view_on_delete_occurrence): Likewise. + (e_week_view_on_unrecur_appointment): Likewise. + + * gui/event-editor.c (nth_weekday): Be paranoid about valid + position values. + (fill_widgets): Use the proper types for exdates. + (dialog_to_comp_object): Likewise. + +2000-11-08 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (adjust_day_index_spin): Adjust the valid + range of the month index spin button depending on the selection of + the day/weekday menu. + +2000-11-07 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-itip-control.c, gui/e-itip-control.glade: changed the GUI, + and added some extra feedback for the user. + +2000-11-07 Federico Mena Quintero <federico@helixcode.com> + + * gui/weekday-picker.h (WeekdayPickerClass): Added a "changed" + signal to notify of changes to the set of selected days. + + * gui/weekday-picker.c (weekday_picker_class_init): Create the + "changed" signal. + (weekday_picker_set_days): Emit the "changed" signal. + +2000-11-06 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-itip-control.c, gui/e-itip-control.glade: changed to GUI to + accomodate dynamically generated buttons, which will be tailored to + the type of iTip message that is incoming. + + * gui/e-meeting-dialog.glade gui/e-meeting-edit.c: added a new button + to publish events, in addition to requesting meetings. + +2000-11-05 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor-dialog.glade: Removed the old recurrence page. + Wheeeeeeeeee! + + * gui/event-editor.c (make_recurrence_special): Clear the monthly + widgets. + (make_recur_monthly_special): Create the monthly widgets. + (clear_widgets): Clear the monthly values. + (simple_recur_to_comp_object): Fill in the monthly values. + (fill_recurrence_widgets): Fill in the monthly and yearly source + values. + (dialog_to_comp_object): Take in a CalComponent instead of using + the event editor's directly. + (recur_to_comp_object): Likewise. + (simple_recur_to_comp_object): Likewise. + (EventEditorPrivate): Removed the widgets from the old recurrence + page. + (get_widgets): Likewise. + (clear_widgets): Likewise. + (dialog_to_comp_object): If the description or summary are empty, + just clear the description list or summary property, respectively, + instead of saving empty ones. + (simple_recur_to_comp_object): Set the week_start field. + + * gui/main.c: Fix includes, and add calendar-config.h. + + * gui/Makefile.am (evolution_calendar_SOURCES): The glade messages + file should not be in SOURCES. + +2000-11-05 Christopher James Lahey <clahey@helixcode.com> + + * doc/.cvsignore, doc/C/.cvsignore: Removed unnecessary .cvsignore + files. + +2000-11-03 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (check_all_day): Block signals from the + toggle button. + (date_changed_cb): Merged check_dates() and check_times() into + this function; provide better behavior as well. + (check_dates): Removed function. + (check_times): Removed function. + (init_widgets): Connect to the "changed" signal on the start_time + and end_time widgets. + (check_all_day): Use a better test. + + * gui/Makefile.am: Clean the idl-generated sources properly. + * cal-client/Makefile.am: Likewise. + +2000-11-03 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-itip-control.c: added some checks for the type of an + incoming iCal component before passing it off to the CalComponent + routines. + +2000-11-02 Federico Mena Quintero <federico@helixcode.com> + + * gui/dialogs/task-editor.c (init_widgets): The date editor's + signal is now "changed". + (completed_changed): Renamed callback to reflect the name of the + signal. + +2000-11-01 Gediminas Paulauskas <menesis@delfi.lt> + + * gui/main.c: (main): added call to bindtextdomain and textdomain, so + all calendar gui shows up localized. + +2000-10-31 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (count_by_xxx): Hmmm. SHRT_MAX changed to + ICAL_RECURRENCE_ARRAY_MAX in libical. Deal with it. + (fill_recurrence_widgets): Likewise. + (simple_recur_to_comp_object): Fixed incorrect assertion. The + weekday picker is not the immediate child of the recurrence + special container. + (fill_recurrence_widgets): Call make_recurrence_special() after + setting the recurrence period type. + (fill_ending_date): Call make_recurrence_ending_special(). This + would be so much nicer if GTK+ were model/view all over. + +2000-10-31 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.h: Remove add/del/mod hashes and + add changed_hash. + + * conduits/calendar/calendar-conduit.h: ditto + + * conduits/todo/todo-conduit.c (next_changed_item): Utility function + to get the next "really" changed item (changed status can be cleared now) + (compute_status): Compute status based on changed_hash + (pre_sync): Fill changed_hash and counts adds/mods/dels + (set_status_cleared): New callback handler - avoid double syncing + (for_each_modified): Use next_changed_item to iterate + (add_archive_record): kill + (delete_archive_record): kill + (archive_record): New callback handler - mark/unmark archive status + (conduit_get_gpilot_conduit): Adjust signal connects + + * conduits/calendar/calendar-conduit.c: ditto + +2000-10-30 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (sensitize_recur_widgets): New function. We + split it from the radio callback so that we can call it explicitly + from fill_recurrence_widgets(). + (fill_recurrence_widgets): Call sensitize_recur_widgets() as + appropriate. + +2000-10-30 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-commands.c (new_calendar): Removed the geometry and + hidden arguments. This code is ancient. + (all_calendars): Made static. This sucks; configuration should be + notification-based instead of "let's iterate through all open + calendars". + (active_calendars): Removed. Functions can check the length of + the all_calendars list if they are interested. + + * gui/event-editor.c (sync_entries): Do not take in an extra data + pointer. + (summary_changed_cb): Use a single call back to sync both entries. + (sync_date_edits): New function to sync two EDateEdit widgets. + (init_widgets): Connect the general and recurrence starting date + widgets. + +2000-10-27 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (sync_entries): New function. + (general_summary_changed_cb): Sync the general summary to the + recurrence summary widget. + (recurrence_summary_changed_cb): Vice-versa. + (init_widgets): Hook to the summaries. + + * event-editor-dialog.glade: Do not expand/fill the start and end + date so that the "all day event" button is not pushed all the way + to the right. + Decrease the spacing between the recurrence sentence widgets. + Remove a spurious empty label that was lurking around the + recurrence widgets. + Make the alarm widgets expand the right way. + Delete old recurrence widgets. + +2000-10-27 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (init_widgets): Connect to the recurrence + ending menu. + (recur_ending_selection_done_cb): Implemented. + (make_recurrence_ending_special): Implemented. + (make_recur_ending_until_special): Implemented. + (fill_ending_date): Implemented. + (make_recur_ending_count_special): Implemented. + (simple_recur_to_comp_object): Fill in the ending date. + (clear_widgets): Clear the recurrence ending widgets. + + * gui/event-editor-dialog.glade: Moved the recurrence type radio + buttons to a single hbox to save space. + Fixed the lower value of the recurrence interval spin button. + Removed the stale widgets from the recurrence ending date part. + +2000-10-27 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-meeting-edit.c: fixed problems in which I allocated CORBA + strings of 0 length, but then didn't NULL terminate them. + +2000-10-27 <jpr@helixcode.com> + + * conduits/calendar/calendar-conduit.c (check_for_slow_setting): + Check boundary case of fast sync + + * conduits/todo/todo-conduit.c (check_for_slow_setting): ditto + +2000-10-27 <jpr@helixcode.com> + + * conduits/calendar/calendar-conduit.c (add_archive_record): Remove + invalid test. + (local_record_from_comp): If the event is all day, mark it as timeless + (comp_from_remote_record): Timeless events take up all day + + * conduits/todo/todo-conduit.c (add_archive_record): ditto + +2000-10-27 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c (add_archive_record): Take proper + number of parameters + + * conduits/calendar/calendar-conduit.c (add_archive_record): ditto + +2000-10-26 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (EventEditorPrivate): Integrate Anna's new + recurrence page. Replace the old widget pointers with the new + ones. Modified the relevant functions accordingly and added + plenty of new ones. + (event_editor_get_cal_client): New function. + (fill_recurrence_widgets): This is *THE* tricky function for you. + It has to discriminate whether we get a recurrence we support for + editing or not. And this is not trivial. Sigh. + (event_editor_update_widgets): Added preconditions and API docs. + + * event-editor-dialog.glade: Fixed all the spacings/ + paddings/packing options so that the widgets will look right if + the dialog box is resized. Also fixes some misaligned widgets. + + * cal-util/cal-component.c (cal_component_set_rdate_list): Removed + incorrect assertion. + +2000-10-26 Michael Meeks <michael@helixcode.com> + + * pcs/cal-factory.c (str_tolower): unsigned chars to isalpha + + * cal-util/calobj.c (weekdaylist, weekdaynum): ditto. + +2000-10-25 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-meeting-edit.c: brushed up some code to deal with + the organizer entry, and solidified the CORBA memory-freeing + issues. + +2000-10-25 Jesse Pavel <jpavel@helixcode.com> + + * removed the Evolution-Composer generated files, due + to a tip on how we do things. + +2000-10-25 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-meeting-edit.c: I fixed a bunch of memory-deallocation + bugs, and finished the initial integration with the mailer. + + * gui/Makefile.am: made the build us the Evolution-Composer.idl + from the composer directory. + +2000-10-25 Jesse Pavel <jpavel@helixcode.com> + + * gui/Evolution-Composer.idl: added this from the composer IDL sources + + * gui/Makefile.am: changed to reflect the above IDL and the associated + orbit-idl generated files. + + * gui/Evolution-Composer.h, + gui/Evolution-Composer-common.c, + gui/Evolution-Composer-stubs.c, + gui/Evolution-Composer-skels.c: + the generated files, as per the above description. + + * gui/e-meeting-edit.c: more work towards mailer integration. + +2000-10-24 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-meeting-edit.c: I've added code to interact with the mailer's + CORBA interfaces, though it's not yet working. + +2000-10-23 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c (local_record_from_comp): Use + new e-pilot-map lookup function + (match): ditto + + * conduits/calendar/calendar-conduit.c (local_record_from_comp): Use + new e-pilot-map lookup function + (match): ditto + +2000-10-23 Dan Winship <danw@helixcode.com> + + * pcs/Makefile.am (INCLUDES): + * gui/dialogs/Makefile.am (INCLUDES): + * gui/Makefile.am (INCLUDES): + * cal-util/Makefile.am (INCLUDES): + * cal-client/Makefile.am (INCLUDES): Update GNOMELOCALEDIR. + +2000-10-23 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.h: Use new libeconduit calls and + abstraction + + * conduits/calendar/calendar-conduit.c: ditto + + * conduits/calendar/calendar-conduit.h: ditto + + * conduits/todo/todo-conduit.c: ditto + + * conduits/calendar/Makefile.am: Add libeconduit-static.la + + * conduits/calendar/calendar-conduit.c (post_sync): Use e_pilot_map_write + (pre_sync): Use e_pilot_map_read + +2000-10-23 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/Makefile.am: Add libeconduit-static.la + + * conduits/todo/todo-conduit.c (post_sync): Use e_pilot_map_write + (pre_sync): Use e_pilot_map_read + +2000-10-21 Damon Chaplin <damon@helixcode.com> + + * gui/dialogs/cal-prefs-dialog.c + (cal_prefs_dialog_use_24_hour_toggled): removed debug message. + + * gui/e-calendar-table.c (e_calendar_table_save_state): new function + to save the state of the table to a given file. + + * gui/e-calendar-table.h (struct _ECalendarTable): added etable field + so we can access it to save the state. + + * gui/gnome-cal.c (gnome_calendar_destroy): call + e_calendar_table_save_state() to save the state of the TaskPad. + (setup_widgets): load the state of the TaskPad. + + * gui/calendar-config.c: added support for the default view. + + * gui/gnome-cal.c (gnome_calendar_construct): + (gnome_calendar_set_view_internal): use/set the default view setting. + +2000-10-20 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-meeting-editor.c: added more (working) integration with the + meeting schedular. + +2000-10-20 Jesse Pavel <jpavel@helixcode.com> + + * cal-utils/cal-component.c: in set_datetime(), I put an #if 0'd portion + of the code back into operation, because the icalproperty_remove_parameter() + function is now implemented. + + * gui/e-meeting-editor.c: added more (unworking) integration with the + meeting schedular. + +2000-10-20 JP Rosevear <jpr@helixcode.com> + + * pcs/cal-backend.c (cal_backend_destroy): New destroy + handler to properly stop the timer, sync the log and unref + the URI. + (cal_backend_last_client_gone): Just emit the signal, + clean up work is done in cal_backend_destroy now. + + * pcs/cal-backend-file.c (cal_backend_file_load): Unref the + uri we are replacing NOT the new uri. + +2000-10-20 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/Makefile.am: Fix build + + * conduits/calendar/Makefile.am: Fix build + +2000-10-20 JP Rosevear <jpr@helixcode.com> + + * conduits/calendar/calendar-conduit.c (delete_archive_record): + Don't throw an error + + * conduits/todo/todo-conduit.c (delete_archive_record): ditto + +2000-10-20 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit-control-applet.c: Add defines + + * conduits/todo/todo-conduit-config.h: put #ifdefs around functions + can't make this a public interface in the usual way as then the + symbols would be exported + + * conduits/todo/todo-conduit.c: Kill warnings. clahey will be + happy! Add some defines to include only the necessary config functions. + (conduit_get_gpilot_conduit): Hook up archive signals + + * conduits/calendar/calendar-conduit.c: Same as above + + * conduits/calendar/calendar-conduit-control-applet.c: ditto + + * conduits/calendar/calendar-conduit-config.h: ditto + +2000-10-20 Michael Meeks <michael@helixcode.com> + + * gui/calendar-commands.h: s/BonoboUIHandler/BonoboUIComponent/ + + * gui/calendar-commands.c (properties_cmd): ditto. + +2000-10-20 Damon Chaplin <damon@helixcode.com> + + * gui/calendar-model.c (calendar_model_value_at): use + cal_component_has_alarms(). + +2000-10-20 Damon Chaplin <damon@helixcode.com> + + * gui/e-calendar-table.c (E_CALENDAR_TABLE_SPEC): added + _click-to-add-message, though I'm not sure if i18n will work. + + * cal-util/cal-recur.c (cal_obj_time_add_hours): + (cal_obj_time_add_minutes): + (cal_obj_time_add_seconds): updated to handle -ve args. + + * cal-util/timeutil.c (time_add_day): set tm_isdst to -1 before calling + mktime(). + + * cal-util/cal-recur.c (generate_instances_for_chunk): don't call the + callback if the event ends exactly on the interval start time. + + * gui/e-week-view.c (e_week_view_reshape_event_span): + * gui/e-week-view-event-item.c (e_week_view_event_item_draw_icons): + * 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): + * gui/e-day-view.c (e_day_view_reshape_long_event): + (e_day_view_reshape_day_event): use cal_component_has_alarms(). + + * cal-util/cal-component.[hc]: added cal_component_has_alarms(). + +2000-10-16 Damon Chaplin <damon@helixcode.com> + + * gui/calendar-config.c (config_read): set default MonthVPanePosition + to 1 rather than 0, so if you move the hpane you'll see the date + navigator. + +2000-10-19 Jesse Pavel <jpavel@helixcode.com> + + * gui/event-editor.[ch]: added a public function which causes the + event editor to reload its widgets to the associated CalComponent. + + * gui/e-meeting-edit.c: added rudimentary support for the phat + e-meeting-time-selector widget, though it has no effect on the + component yet. + + * gui/Makefile.am: the meeting editor depends on the meeting widget + library, now. + + * gui/e-itip-control.glade: I added another toolbar button that summons + from the hoary deep the meeting time widget. + +2000-10-19 Ettore Perazzoli <ettore@helixcode.com> + + * gui/Makefile.am: Add `event-editor-dialog.glade.h'. + (EXTRA_DIST): Add `$(glade_messages)'. + +2000-10-19 Michael Meeks <michael@helixcode.com> + + * gui/calendar-commands.c (tb_print_cb): remove; redundant. + + * gui/event-editor.c (create_menu, create_toolbar): kill. + (event_editor_destroy): upd. + (event_editor_construct): update to new UI handler, cast + priv->general_summary to a widget not an object. + +2000-10-18 Michael Meeks <michael@helixcode.com> + + * gui/dialogs/task-editor.c (create_menu, create_toolbar): die. + (debug_xml_cb): add debugging hook. + + * gui/dialogs/Makefile.am: add EVOLUTION_DATADIR + + * gui/dialogs/task-editor.c (task_editor_construct): upd for new UI. + +2000-10-17 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit-control-applet.c: Add defines + + * conduits/todo/todo-conduit-config.h: put #ifdefs around functions + can't make this a public interface in the usual way as then the + symbols would be exported + + * conduits/todo/todo-conduit.c: Kill warnings. clahey will be + happy! Add some defines to include only the necessary config functions. + (conduit_get_gpilot_conduit): Hook up archive signals + + * conduits/calendar/calendar-conduit.c: Same as above + + * conduits/calendar/calendar-conduit-control-applet.c: ditto + + * conduits/calendar/calendar-conduit-config.h: ditto + +2000-10-16 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-itip-control.c: You can now add incoming iTip + messages to your calendar store. + + * gui/e-itip-control.glade: added a progress bar dialog + in case the calendar loading takes a long time. + +2000-10-16 JP Rosevear <jpr@helixcode.com> + + * cal-client/cal-client.h: Remove pilot cruft. All pilot stuff + is in the conduits now and uses the logging facility. + + * pcs/cal-backend-file.c: ditto + + * pcs/cal-backend.h: ditto + + * pcs/cal-backend.c: ditto + + * pcs/cal.c: ditto + + * pcs/cal.h: ditto + + * idl/evolution-calendar.idl: ditto + + * cal-util/cal-component.h: ditto + + * cal-util/cal-component.c: ditto + + * cal-client/cal-client.c: ditto + + * conduits/calendar/calendar-conduit.c (local_record_from_comp): + Take a stab at storing recurrence stuff on the pilot properly + + * pcs/cal-backend.c (cal_backend_update_object): Don't log the + event until after the update in case its a new item + +2000-10-16 Tuomas Kuosmanen <tigert@helixcode.com> + + * gui/dayview.xpm, gui/workweekview.xpm, gui/weekview.xpm + gui/monthview.xpm gui/yearview.xpm: Updated icons, let me know + if you like these or not, I might work on these some more but + I wanted to put these versions up anyway to get feedback.. + +2000-10-15 Dan Winship <danw@helixcode.com> + + * gui/Makefile.am: Remove CPPFLAGS def since the -D there was + already in INCLUDES + +2000-10-14 Ettore Perazzoli <ettore@helixcode.com> + + * gui/evolution-calendar.oafinfo: Added an + "evolution:shell-component-icon" attribute. + +2000-10-12 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-itip-control.{c,glade}: Made the control much more + relavent to the function at hand. + +2000-10-12 Damon Chaplin <damon@helixcode.com> + + * gui/e-calendar-table.c (E_CALENDAR_TABLE_SPEC): set the 2 icon + columns to a min width of 18 and resizable to FALSE. + +2000-10-12 Damon Chaplin <damon@helixcode.com> + + * gui/calendar-commands.c (calendar_control_activate): + (update_pixmaps): + (set_pixmap): set the pixmaps of the toolbar buttons for the views, + and removed a lot of old unused stuff. We'll use plain buttons for + the view buttons for now, until Bonobo toolbars support radio buttons. + + * gui/gnome-cal.c (gnome_calendar_dayjump): check day_button is not + NULL before using it. + (gnome_calendar_update_view_buttons): check button is not NULL. + +2000-10-11 Damon Chaplin <damon@helixcode.com> + + * gui/e-day-view-time-item.c (e_day_view_time_item_draw): got 12/24 + hour format the wrong way round. + +2000-10-12 JP Rosevear <jpr@helixcode.com> + + * conduits/calendar/calendar-conduit.c (comp_from_remote_record): + Store recurrence stuff on the desktop properly + (get_ical_day): Utility function + +2000-10-12 Iain Holmes <iain@helixcode.com> + + * gui/component-factory.c: Disable the executive summary. + +2000-10-11 JP Rosevear <jpr@helixcode.com> + + * pcs/cal-backend.c (cal_backend_log_entry): Take CalObjType + as a param because its impossible to determine after a delete. + (cal_backend_remove_object): Calculate CalObjType and pass + it to cal_backend_log_entry + (cal_backend_update_object): ditto + + * conduits/todo/todo-conduit.c (local_record_from_comp): Kill + unused variables. + (add_archive_record): Don't kill the sync if this happens + (update_record): Kill old function + (replace_record): New function to handle replace_record signal + (conduit_get_gpilot_conduit): Listen for replace record signal + (add_record): Always add a new record, never replace + (replace_record): Always replace an existing record + + * conduits/calendar/calendar-conduit.c: Same as above + +2000-10-10 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-itip-control.c: set a default size for the control. + +2000-10-10 Jesse Pavel <jpavel@helixcode.com> + + * gui/evolution-calendar.oafinfo: Added information about the + text/calendar MIME type, so that the evolution-calendar is called + to deal with iMIP attachments. + + * gui/e-itip-control.[ch]: These files implement a Bonobo + control that will eventually deal with iMIP/iTIP messages from + the mailer. Right now, it's not working. + + * gui/e-itip-control.glade: The Glade GUI for the above-mentioned + control. + + * gui/Makefile.am: added references to the files I created. + + * gui/main.c: called the initialization function of the Bonobo + control factory. + +2000-10-11 Tuomas Kuosmanen <tigert@helixcode.com> + + * gui/task-assigned-to.xpm gui/task-assigned.xpm + gui/recur.xpm gui/task-recurring.xpm gui/task.xpm: + New versions of the icons for the tasklist/pad. + +2000-10-11 Damon Chaplin <damon@helixcode.com> + + * gui/component-factory.c (owner_unset_cb): don't free evolution_dir + as we need it to save the config settings. + +2000-10-11 Damon Chaplin <damon@helixcode.com> + + * gui/main.c (main): call calendar_config_write_on_exit() to write + out some special config settings (as the mail component does). + + * gui/calendar-commands.c (properties_cmd): changed to use the new + preferences dialog. + (update_all_config_settings): new function to iterate over all the + calendars and update the config settings. + + * gui/dialogs/cal-prefs-dialog.glade: preferences dialog. + + * gui/dialogs/cal-prefs-dialog.[hc]: new files for the preferences + dialog. + + * gui/calendar-config.[hc]: new files to handle loading/saving config + settings. + + * cal-util/cal-recur.c: fixed bug in YEARLY when no filters were set, + plus minor changes. + + * cal-util/test-recur.c: updated. + + * gui/e-day-view-time-item.c: + * gui/popup-menu.c: update to #include <gal/widgets/e-gui-utils.h> + + * gui/component-factory.c (owner_set_cb): called calendar_config_init. + (owner_set_cb): + (owner_unset_cb): updated the prototypes. + + * gui/main.c (main): added call to calendar_config_write_on_exit(). + + * gui/component-factory.h: + * gui/component-factory.c (owner_set_cb): added global evolution_dir + just like the mail component, so we know we to store config stuff. + +2000-10-11 Christopher James Lahey <clahey@helixcode.com> + + * gui/e-calendar-table.c: Fixed the column elements here. + +2000-10-11 Christopher James Lahey <clahey@helixcode.com> + + * gui/e-calendar-table.c: Updated to use the new ETable + specification stuff. + +2000-10-11 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c (map_sax_start_element): The + element is "pilot_id" not "pilotid". Update both maps + (compute_pid): Utility function to set a local records pid + (local_record_from_comp): Compute the pid and status here, + no longer use the old cal_component pilot interfaces + (free_match): Its a *local not a **local + + * conduits/calendar/calendar-conduit.c: same as above + + * conduits/todo/todo-conduit.h: Have both a uid and pid map + + * conduits/todo/calendar-conduit.h: same as above + +2000-10-09 JP Rosevear <jpr@helixcode.com> + + * conduits/*: Adjust to using gnome-pilot-sync-abs conduit which + is based on the latest pilot link changes. + +2000-10-09 Iain Holmes <iain@helixcode.com> + + * Makefile.am: Added the executive-summary library and cflags + + * gui/evolution-calendar.oafinfo: Added oaf servers for the + executive summary and executive summary factory. + + * gui/calendar-summary.[ch]: New files to create the summary. + + * gui/component-factory.c (summary_fn): Create the executive + summary component. + (component_factory_init): Start the summary factory as well. + +2000-10-06 Federico Mena Quintero <federico@helixcode.com> + + * gui/weekday-picker.[ch]: New widget to pick weekdays. + +2000-10-05 Michael Meeks <michael@helixcode.com> + + * gui/calendar-commands.c: upd. + (calendar_control_activate): upd. + (calendar_control_deactivate): upd. + +2000-10-05 Damon Chaplin <damon@helixcode.com> + + * gui/e-day-view.c: + * gui/e-week-view.c: when the user types in a new event, don't create + it until the user hits Return or switches focus. Removed the + editing_new_event flags. + + * cal-util/test-recur.c: rewritten to work on ics files. Now I can + start testing the recurrence code. + + * cal-util/cal-recur.c: a few fixes. + + * gui/e-day-view.c (e_day_view_check_if_new_event_fits): fixed to + return TRUE for long events, not FALSE. + +2000-10-04 Federico Mena Quintero <federico@helixcode.com> + + * gui/print.c (print_todo_details): As a temporary solution to the + to-do printing, just print the summaries. We'll use the ETable + printing stuff later. + + * gui/print.c (print_day_summary_cb): Use g_list_append() correctly. + (print_todo_details_cb): Likewise. + (print_day_summary): Initialize psi.events. This code was + obviously never tested. + (print_todo_details): Likewise. + (print_day_details): Initialize pdi.slots. + + * gui/print.c (range_selector_new): Fix strftime() %a versus %b + confusion. Fixes bugzilla #644. + (range_selector_new): Fix the whole localization mess by making + better use of strftime(). Now we generate whole date strings at a + time and compose them later. Fixes bugzilla #643. + +2000-10-02 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-meeting-edit.c: added support for the ROLE and RSVP parameters + in both the GUI and underlying iCal. + +2000-09-29 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-meeting-edit.c: added support for organizers in the meeting + scheduler. + +2000-09-29 Jesse Pavel <jpavel@helixcode.com> + + * gui/e-meeting-edit.c: added code that makes changes to the underlying + iCAL structure of an event, when the user changes meeting information. + + * gui/e-meeting-dialog.glade: this is the Glade UI for the meeting dialog + and accoutrements. + +2000-09-29 Damon Chaplin <damon@helixcode.com> + + * cal-util/cal-recur.c: updated to support RDATE end times or + durations. Note that if you have two RDATEs with the same start times, + but with different end dates/durations set, the results are + unpredictable. So the event editor dialog should check for this. + + * gui/e-week-view-main-item.c (e_week_view_main_item_draw_day): + make strftime() strings translatable, and changed the formats a bit. + + * NOTE: someone needs to check print.c to make sure strftime strings + are OK for i18n. + + * gui/e-day-view.h: Changed EDayViewDateFormat enum. We now try to + include the weekday if possible. Also changed EDayView struct so we + store the month & weekdays with the longest names rather than the + actual widths. This helps i18n. + + * gui/e-day-view.c (e_day_view_recalc_cell_sizes): used _() for + strftime strings, tried to see if weekday fits, and rearranged a + bit to make i18n easier. + + * gui/e-day-view-top-item.c (e_day_view_top_item_draw): used _() for + strftime strings, and updated to use new formats. + + * gui/calendar-model.c: added use_24_hour_format boolean to + CalendarModelPrivate so we can display dates in 12-hour format if + requested. This meant adding a CalendarModel argument to a few + functions. Also added get/set functions to set use_24_hour_format. + I suppose ideally we should have an ECellDate renderer and this option + should go there. + +2000-09-27 Jesse Pavel <jpavel@helixcode.com> + + * gui/event-editor.c: changed a menu entry so that it will invoke + my meeting editor. + + * gui/e-meeting-edit.[ch]: added these files to provide preliminary + support for iTIP meeting scheduling. Currently, only the GUI works; + there is not yet any backend support. + + * gui/Makefile.am: added entries for e-meeting-edit.[ch] + +2000-09-24 Damon Chaplin <damon@helixcode.com> + + * gui/dialogs/task-editor-dialog.glade: set the height of the scrolled + window for the description field, since the default window height + doesn't seem to be working. + + * cal-util/cal-component.h: added functions to get the actual + icalproperty lists for RRULE and EXRULE properties. + + * cal-util/cal-recur.[hc]: added support for COUNT, though I need to + test it a bit. Also fixed the call to generate_instances_for_year() so + it uses the chunk dates. + +2000-09-20 Damon Chaplin <damon@helixcode.com> + + * gui/event-editor.c: got rid of 1 '_' in '__Formatting'. + +2000-09-22 Michael Meeks <michael@helixcode.com> + + * gui/calendar-commands.c (calendar_control_activate): upd. + +2000-09-21 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-commands.c (verbs): Removed the "about calendar" + command, since we don't want to have both "About Evolution" and + "About Calendar". + +2000-09-21 Michael Meeks <michael@helixcode.com> + + * gui/calendar-commands.c (calendar_control_activate): _UIHandler + update. + +2000-09-20 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c (pre_sync): Don't fail if there + is no map file. + +2000-09-20 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.h: Add since field to context + + * conduits/todo/todo-conduit.c (map_set_node_timet): New utility + function + (map_sax_start_element): Look for the map timestamp as well + (map_write): Write the map timestamp + (pre_sync): Use the map time stamp when looking for changed entries + + * pcs/cal-backend.c (cal_backend_log_sax_start_element): Make sure + we are in a valid timestamp + +2000-09-20 JP Rosevear <jpr@helixcode.com> + + * pcs/cal-backend.c (cal_backend_log_name): Make the log file + name relevant to the actual calendar file, rather than just the + directory. + +2000-09-20 JP Rosevear <jpr@helixcode.com> + + * pcs/cal-backend.c (cal_backend_get_log_entries): Oops + +2000-09-20 JP Rosevear <jpr@helixcode.com> + + * pcs/cal-backend.c (cal_backend_get_log_entries): Use a local + sax handler. + + * conduits/todo/todo-conduit.c (pre_sync): Use xmlSAXParseFile + (map_sax_parse): Delete + +2000-09-20 JP Rosevear <jpr@helixcode.com> + + * pcs/cal-backend.c (cal_backend_log_sax_start_element): Properly + assign the CalObjChange type. + (cal_backend_log_sax_parse): Delete + (cal_backend_get_log_entries): Use xmlSAXUserParseFile + +2000-09-19 JP Rosevear <jpr@helixcode.com> + + * pcs/cal-backend.c (cal_backend_set_uri): New utility function + (cal_backend_load): use above + (cal_backend_create): use above + (cal_backend_log_name): Take a uri instead of a backend param + + * pcs/cal-backend-file.c: Get rid of useless hash functions + (cal_backend_file_load): Check to make sure path exists and is + local + (cal_backend_file_load): Unref the current uri if there is one + (cal_backend_file_create): ditto + + * pcs/cal-backend.c (cal_backend_last_client_gone): Sync before + shooting ourselves in the foot + + * pcs/cal-backend-file.c (save): Fully implement backing up the + calendar before writing out the new entry. + +2000-09-19 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c (check_for_slow_setting): Add some + other cases where a slow sync is in order + (pre_sync): Pre load the uids, the map and the add/mod/del lists + (match_record): Use the map hash to match records + (iterate): Iterate using the pre-loaded uid list + (iterate_specific): Iterate using the add/mod/del lists + (purge): Delete all entries in the del list + (set_status): Set status by adding to an appropriate list + (set_pilot_id): Set pilot_id by updating map hash + + * conduits/todo/todo-conduit.h: Add lists for added, modified and + deleted objects + + * conduits/todo/todo-conduit.c (map_name): Get the pilot_id->uid map + file name + (map_sax_start_element): SAX handler to extract a pilot_id->uid + mapping + (map_sax_parse): Parse the given file and build a pilot_id->uid hash + (map_write_foreach): Write out individual mapping elements + (map_write): Write out the pilot_id->uid mapping + (start_calendar_server_cb): Rename from gnome_calendar_load_cb + + * conduits/todo/todo-conduit-config.h: Rename pilotID to pilot_id + + * conduits/todo/e-todo.conduit.in: A little renaming + + * conduits/todo/Makefile.am: Fix build slightly + + * pcs/cal.c (build_change_seq): Build a corba sequence out of a list + of CalObjChanges + (Cal_get_objects_in_range): Implement new corba function + + * pcs/cal-backend.c (cal_backend_init): Intiliaze to NULL + (cal_backend_load): Track the uri so we can write the log file + to the same place + (cal_backend_log_name): Figure out the log filename/path based on + the calendar uri + (cal_backend_set_node_timet): Set an xml node property value from + a time_t + (cal_backend_log_entry): Adds a log entry to list waiting to be written + out + (cal_backend_log_sync): Syncs the log entries to disk + (cal_backend_log_sax_start_element): SAX callback for reading in + log entries + (cal_backend_log_sax_end_element): ditto + (cal_backend_log_sax_parse): Main SAX parser call to parse the log + file looking for particular log entries and creating a CalObjChange + hash with the last change for each object + (cal_backend_get_log_entries): Returns a hash of objects of a given + type changed since the given time + (cal_backend_update_object): Add appropriate log entries + (cal_backend_remove_object): ditto + (cal_backend_get_changed_uids): Implement new idl interface call + (cal_backend_foreach_changed): Convert CalObjChange hash into a list + + * pcs/cal-backend-imc.[hc]: Remove crufty files + + * pcs/cal-backend-file.c (cal_backend_file_get_type_by_uid): New + function that returns the CalObjType for a uid. + + * cal-client/cal-client.h: Update prototypes. + + * cal-client/cal-client.c (build_change_list): Build a list + of CalObjChange items from a corba sequence. + (cal_client_get_changed_uids): New accessor method for the + similarly named addition to the idl file. + + * cal-util/cal-util.h: Update prototypes and add CalObjChangeType + enum. + + * cal-util/cal-util.c (cal_obj_change_list_free): New utility + method to free a list of CalObjChange objects. + + * idl/evolution-calendar.idl: Add get_changed_uids method + and associated types. + +2000-09-18 Christopher James Lahey <clahey@helixcode.com> + + * gui/Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and + $(EXTRA_GNOME_LIBS). Removed unneeded libraries. + + * gui/calendar-model.h, gui/e-calendar-table.c, gui/e-day-view.c, + gui/e-week-view-event-item.c, gui/e-week-view.c, + gui/event-editor.c, gui/gncal-todo.c, gui/gnome-cal.c, gui/main.c, + gui/print.c, gui/dialogs/task-editor.c: Fixed the #include lines + to deal properly with gal. + + * gui/check-filled.xpm: New file since we can't include it from + e-table anymore. + +2000-09-16 Michael Meeks <michael@helixcode.com> + + * gui/Makefile.am (INCLUDES): add datadir + + * gui/calendar-commands.c (calendar_control_activate): use it. + +2000-09-14 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/.cvsignore: Shush + +2000-09-14 JP Rosevear <jpr@helixcode.com> + + * Add headers with GPL notice and credit copyright to those appropriate + + * conduits/todo/todo-conduit-control-applet.c (doHelp): Update name, + authors, copyright for about dialog. + (activate_sync_type): Tidy + + * conduits/todo/Makefile.am: Rename binaries and libs to e-todo* + to avoid conflicts. + + * conduits/todo/e-todo.conduit.in: Reflect binary/lib name changes + + * conduits/todo/e-todo-conduit-control-applet.desktop: ditto + + * conduits/todo/todo.conduit.in: Removed + + * conduits/todo/todo-conduit-control-applet.desktop: Removed + + * conduits/todo/todo-conduit-config.h (todoconduit_load_configuration): + The config file will now be called e-todo-conduit + (todoconduit_save_configuration): ditto + + * conduits/todo/todo-conduit.c: Some renaming to keep consistent. + (pre_sync): Remove commented out function that does not exist. + + * conduits/todo/todo-conduit-control-applet.c: ditto + + * conduits/todo/todo-conduit-config.h: ditto + + * conduits/todo/todo-conduit.h: ditto + + +2000-09-07 Michael Meeks <michael@helixcode.com> + + * gui/calendar-commands.c: Re-write most UI handler code. + +2000-09-13 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-model.c (obj_updated_cb): Removed an unused + variable. + + * gui/calendar-model.c (obj_updated_cb): See if the new object + matches the type of objects we were told to deal with. + (load_objects): Likewise. + +2000-09-13 JP Rosevear <jpr@helixcode.com> + + * pcs/cal-backend-file.c (remove_component): Only remove the pilot + item from the hash if it exists in the first place. + +2000-09-12 JP Rosevear <jpr@helixcode.com> + + * pcs/cal-backend-file.c (add_component): plug leakage + +2000-09-12 JP Rosevear <jpr@helixcode.com> + + * conduits/calendar/calendar-conduit.c: Hack to compile for distcheck. + + * conduits/calendar/calendar-conduit.h: Remove calobj.h dependency + +2000-09-12 JP Rosevear <jpr@helixcode.com> + + * pcs/cal-backend-file.c (cal_backend_file_load): Use g_int_* + for now + (cal_backend_file_create): ditto + + * conduits/todo/todo-conduit.c (local_record_from_compobject): Make + this actually fill in the todo record. + (find_record_in_repository): Add debug stuff + (iterate_specific): Use the already exisiting utility function + + * pcs/cal-backend-file.c (cal_backend_file_update_pilot_id): correct + the status and id types. g_strdup the uid since this is not a + constified return + (cal_backend_file_get_uid_by_pilot_id): correct the id type + +2000-09-12 Ettore Perazzoli <ettore@helixcode.com> + + * gui/Makefile.am: Remove `ui.xml' stuff. + + * pcs/cal-backend.c: Dont' #include calobj.h anymore as it's gone. + +2000-09-12 Federico Mena Quintero <federico@helixcode.com> + + * gui/gnome-cal.c (gnome_calendar_construct): Connect to the + "cal_loaded" signal of the client here. + (connect_load): Removed function. + (disconnect_load): Removed function. + (cal_loaded_cb): Store the URI we are loading in the GnomeCal + structure instead of in a weird closure. This gets rid of the + connect/disconnect mess as well. + (gnome_calendar_open): Store the URI in the GnomeCal. + +2000-09-11 Christopher James Lahey <clahey@helixcode.com> + + * gui/e-day-view.c: Fixed a warning (removed unused variable + gfloat width from e_day_view_get_event_position.) + +2000-09-11 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c: Handle renaming, header cleanup + + * conduits/todo/todo-conduit.h: Rename GCalLocalRecord to + EToDoLocalRecord, header cleanup + +2000-09-11 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c (comp_from_remote_record): Use + description list instead of comment list for pilot todo note + (transmit): Check for null cal component properties, set priority + correctly, use description list instead of comment list. Make + pilot record private when appropriate. + +2000-09-10 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c (comp_from_remote_record): Only + set the due date only if it exists + +2000-09-10 JP Rosevear <jpr@helixcode.com> + + * gui/calendar-model.c (get_is_complete): Relying on the status + field is somewhat faulty since it is related to group scheduling + +2000-09-10 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c (update_calendar_entry_in_repository): + Make log output a little more sensible + (comp_from_remote_record): Minor correction when making a CalComponent + from scratch. + (update_record): Use comp_from_remote_record for new items, rather + than repeating the code here. + +2000-09-10 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c: Remove catch_ret_val function + since its no longer useful. Fix naming of various fields from + the header changes. Use GnomePilotRecord* stuff instead of + ICAL_PILOT_SYNC_* + (e_todo_context_new): Rename from gcalconduit_new_context. Now takes + a pilot id and loads the configuration here + (e_todo_context_destroy): Rename from gcalconduit_destroy_context. + Unref the client and destroy the configuration if they exist here + (start_calendar_server): Change the default calendar name + (local_record_from_comp_uid): Rename from local_record_from_ical_uid + (local_record_from_compobject): Rename from + local_record_from_icalobject. Properly do the pilot id and status. + (comp_from_remote_record): Rename from ical_from_remote_record. + Handle due, complete, classification and pilot stuff properly + (pre_sync): Remove some old stuff. We need to figure out how to + set some of the field values. + (set_status): Reflect pilot status changes from above + (conduit_destroy_gpilot_conduit): Remove cleanup stuff that is + now done by e_todo_context_destroy + (conduit_get_gpilot_conduit): Only set the context as object + data of the conduit. + + * conduits/todo/todo-conduit.h: Rename GCalConduitContext to + EToDoConduitContext. Remove some unused struct fields. + For GCalLocalRecord, rename ical to comp. + +2000-09-11 Damon Chaplin <damon@helixcode.com> + + * gui/dialogs/task-editor.c: changed to use EDateEdit. + + * gui/dialogs/task-editor-dialog.glade: added "None" option to + Classification option menu, and used custom widgets for the date + entries so we can use EDateEdit widgets. + + * gui/event-editor.c: changed to use EDateEdit. Note that this needs + to be fixed at some point to handle invalid dates, i.e. when + e_date_edit_get_time returns -1. + + * gui/calendar-model.c (ensure_task_complete): + (ensure_task_not_complete): new functions to set the related properties + to make sure a task is marked as complete on not, i.e. "Date Completed" + "Status" and "Percent" properties. + +2000-09-08 Damon Chaplin <damon@helixcode.com> + + * gui/calendar-model.c (get_is_complete): use the status field rather + than the completed date, as it is more reliable. + (get_is_overdue): use get_is_complete(). + (calendar_model_mark_task_complete): check if it is already complete, + and if so don't update it. + + * cal-util/cal-component.c (cal_component_get_status): + (cal_component_set_status): added functions to support the STATUS + property. Also added the property to CalComponentPrivate and set it + to NULL in free_icalcomponent(). Someone should check my code as I've + mainly done a Cut & Paste job. + +2000-09-10 JP Rosevear <jpr@helixcode.com> + * conduits/todo/todo-conduit.c: Convert "//" style comments + (local_record_from_ical_uid): Remove iCalObject cruft + (ical_from_remote_record): ditto + (free_match): Properly unref the CalComponent + +2000-09-10 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c (local_record_from_icalobject): Use + cal component pilot stuff properly + (find_record_in_repository): Remove cruft + (ical_from_remote_record): Remove cruft + (update_record): Set the vtype immediately after creation. Remove cruft + + * conduits/todo/todo-conduit.h: Remove iCalObject stuff + + * conduits/todo/todo-conduit-config.h: Move all the config stuff + here, I need to kill the warnings at some point + + * conduits/todo/todo-conduit-control-applet.c (doRevertSettings): + Set all the state variables correctly on a revert + (doSaveSettings): Update original state + (doHelp): Rename from about_cb + (main): Destroy configurations when done + + * conduits/todo/Makefile.am: Tidy + + * pcs/cal-backend-file.c (cbf_pilot_hash): Function for hashing + pilot ids + (cbf_pilot_equal): For hash table of pilot ids + (cal_backend_file_destroy): Destroy pilot id hash + (add_component): Insert the uid into the pilot hash + (remove_component): Remove the uid from the pilot hash + (cal_backend_file_load): Create the pilot hash + (cal_backend_file_create): ditto + (cal_backend_file_get_uid_by_pilot_id): Implement using the pilot hash + (cal_backend_file_update_pilot_id): ditto + + * cal-util/cal-component.h: Update prototypes + + * cal-util/cal-component.c (cal_component_get_pilot_id): Implement + using ical X properties + (cal_component_set_pilot_id): ditto + (cal_component_get_pilot_status): ditto + (cal_component_set_pilot_status): ditto + (cal_component_free_pilot_id): Free a pilot id + (cal_component_free_pilot_status): Free a pilot status + +2000-09-09 Ettore Perazzoli <ettore@helixcode.com> + + * gui/dialogs/Makefile.am (INCLUDES): Add + `-I$(top_builddir)/libical/src/libical' so that we get + `icalversion.h' from the build directory instead of taking it from + the installation directory, which is of course Wrong (tm). + * gui/Makefile.am (INCLUDES): Likewise. + +2000-09-08 Federico Mena Quintero <federico@helixcode.com> + + * gui/gnome-cal.c (cal_loaded_cb): New function with the + loading/creation state machine. It is carefully modelled after + the state machine that started the Universe, so bow before it. + (gnome_calendar_construct): Do not connect to cal_loaded here. + (connect_load): The closure for the cal_loaded callback is a bit + tricky, so provide a function to create it and connect to the + signal. + (disconnect_load): Disconnect from the signal and free the + closure. + (gnome_calendar_load_cb): Removed obsolete buggy function. + (gnome_calendar_open): Use the new mechanism. + + * gui/control-factory.c (set_prop): The default filename is now + calendar.ics. + +2000-09-08 JP Rosevear <jpr@helixcode.com> + + * conduits/calendar/calendar-conduit.c (transmit): Use + icaltime_as_timet + +2000-09-08 Christopher James Lahey <clahey@helixcode.com> + + * cal-util/cal-recur.c, gui/e-day-view.c, gui/e-week-view.c, + gui/event-editor.c, gui/getdate.y, gui/gncal-todo.c, + gui/gnome-cal.c, gui/dialogs/task-editor.c: Fixed some warnings. + +2000-09-08 JP Rosevear <jpr@helixcode.com> + + * conduits/calendar/Makefile.am: Tidy + + * conduits/todo/Makefile.am: Tidy + +2000-09-08 Federico Mena Quintero <federico@helixcode.com> + + Fall equinox cleanup! + + OK, I know the equinox is not here yet, but weather has changed + enough to warrant it. + + Sigh. This place is definitely not the tropics. + + * gui/gnome-cal.c (obj_updated_cb): Renamed from + gnome_calendar_object_updated_cb(); fixed prototype. + (obj_removed_cb): Renamed from gnome_calendar_object_removed_cb(); + fixed prototype. + (GnomeCalendarPrivate): Moved all the GnomeCalendar fields to a + private structure so I don't have to rebuild the whole calendar + GUI directory every time something changes in the object. + (GnomeCalendarPrivate): Removed the property bag and the control + fields; they are local to the control-factory now. + (gnome_calendar_update_view_buttons): Remove the + ignore_view_button_clicks mess and just block the signal. + (gnome_calendar_set_view): Added a "focus" argument to indicate + whether we want the main widget in the specified view to grab the + focus. + (gnome_calendar_set_view_internal): Handle the focus argument here. + (gnome_calendar_set_view_buttons): Temporary hack to notify the + calendar about its buttons. + (gnome_calendar_get_selected_time_range): New function. + (gnome_calendar_get_cal_client): New function. + + * gui/control-factory.c (calendar_properties_init): Keep the + property bag local to here; it does not need to be in the calendar + object yet. + (control_factory_fn): Renamed from control_factory(). Just use + control_factory_new_control(). + (control_factory_new_control): Moved the stuff over from + create_control(), and keep the control local to here. Check the + return value of bonobo_control_new(). + + * gui/calendar-commands.c (show_day_view_clicked): Remove the + ignore_view_button_clicks mess. + (new_calendar): Removed the useless "page" argument. + (calendar_control_activate): Use gnome_calendar_set_view_buttons() + for now. + +2000-09-07 Lauris Kaplinski <lauris@helixcode.com> + + * cal-client/Makefile.am: Added -lunicode + + * gui/dialogs/task-editor.c: More UTF-8 wrappers + (priority_index_to_value): Kill warning, add assertion + +2000-09-06 JP Rosevear <jpr@helixcode.com> + + * gui/e-day-view-main-item.c (e_day_view_main_item_draw_day_event): + Use new cal_component_has_recurrences convenience function + + * gui/e-week-view.c (e_week_view_show_popup_menu): ditto + + * gui/e-week-view-event-item.c (e_week_view_event_item_draw_icons): + ditto + + * gui/calendar-model.c (calendar_model_value_at): ditto + (calendar_model_value_at): ditto + + * gui/e-day-view.c (e_day_view_on_event_click): ditto + (e_day_view_on_event_right_click): ditto + (e_day_view_on_top_canvas_motion): ditto + (e_day_view_on_top_canvas_motion): ditto + (e_day_view_on_main_canvas_motion): ditto + (e_day_view_on_main_canvas_motion): ditto + (e_day_view_reshape_day_event): ditto + + * gui/e-day-view-top-item.c (e_day_view_top_item_draw_long_event): + ditto + + * gui/e-day-view.c (e_day_view_on_long_event_click): ditto + +2000-09-06 JP Rosevear <jpr@helixcode.com> + + * cal-util/cal-recur.c (cal_recur_generate_instances): Use + new convenience functions and only get the recurrence + stuff if needed. Free the recurrence stuff if used. + +2000-09-05 JP Rosevear <jpr@helixcode.com> + + * cal-util/cal-component.h: Add new prototypes + + * cal-util/cal-component.c (cal_component_has_exrules): Utility + function to determine whether a cal component has any exrules + (cal_component_has_exdates): Ditto for exdates + (cal_component_has_exceptions): Utility function to determine + whether a cal component has any exception rules + (cal_component_has_recurrences):Utility function to determine + whether a cal component has any recurrence rules + +2000-09-05 JP Rosevear <jpr@helixcode.com> + + * gui/event-editor.c (dialog_to_comp_object): Kill all exdates if + there are no dates in the box + + * cal-util/cal-recur.c (generate_instances_for_year): Add a special + case for when there are exceptions but no rrules or rdates. + (cal_obj_remove_exceptions): Use date only compare func + (cal_obj_date_only_compare_func): New compare function that + compares the date only, not the time. + + * gui/event-editor.c (dialog_to_comp_object): Need a break for the + yearly recurrence type + (dialog_to_comp_object): We need to allocate icaltimetypes for the + exdate list + (fill_widgets): Handle a weekly recurrence with no particular day set + (dialog_to_comp_object): Kill all rrules if "None" is selected as + the recurrence type by the user + +2000-09-06 Damon Chaplin <damon@helixcode.com> + + * gui/e-calendar-table.c (e_calendar_table_open_task): uses the new + TaskEditor dialog. + + * gui/dialogs/task-editor.[hc]: + * gui/dialogs/task-editor-dialog.glade: updated. Still need to fix the + 'Status' property (CalComponent doesn't support it yet), and use a + replacement for GnomeDateEdit, since we need to support setting 'None' + as the date. + +2000-09-04 Damon Chaplin <damon@helixcode.com> + + * gui/event-editor.c (obj_updated_cb): + (obj_removed_cb): compare the updated object's uid with the one we + are editing, and just return if it doesn't match. + +2000-09-01 Damon Chaplin <damon@helixcode.com> + + * gui/gnome-cal.c (gnome_calendar_tag_calendar): added check to see + if the client has loaded successfully. Gets rid of a few warnings. + +2000-09-05 JP Rosevear <jpr@helixcode.com> + + * cal-util/cal-recur.c (generate_instances_for_year): The exdate + and rdate lists are a list of icaltimetypes, not CalComponentPeriods + + * gui/e-day-view.c (e_day_view_on_delete_occurrence): The exdate list + is a list of icaltimetypes, not CalComponentDateTimes + +2000-09-05 JP Rosevear <jpr@helixcode.com> + + * gui/e-day-view.c (e_day_view_on_delete_occurrence): Append + the exdate to the list AFTER we create the date value. + +2000-09-05 JP Rosevear <jpr@helixcode.com> + + * cal-util/cal-component.c (cal_component_free_recur_list): Free + the data, not the list element. + +2000-09-05 JP Rosevear <jpr@helixcode.com> + + * cal-util/cal-recur.c (cal_recur_generate_instances): Compute + the event duration using the event start/end times, not the + interval times. + +2000-09-05 JP Rosevear <jpr@helixcode.com> + + * cal-util/cal-recur.c (cal_recur_from_icalrecurrencetype): Check + to see if r->enddate is (time_t)-1 and set to 0 if so + +2000-09-02 Ettore Perazzoli <ettore@helixcode.com> + + * conduits/calendar/Makefile.am (INCLUDES): Add libical include + directories and `$(BONOBO_GNOME_CFLAGS)'. + * conduits/todo/Makefile.am (INCLUDES): Likewise. + +2000-09-02 Lauris Kaplinski <lauris@helixcode.com> + + * gui/event-editor.c: e_utf8 wrappers + + * gui/gncal-todo.c: e_utf8_wrappers + +2000-09-02 Christopher James Lahey <clahey@helixcode.com> + + * conduits/calendar/calendar-conduit.c, + conduits/todo/todo-conduit.c, gui/e-week-view.c, gui/gnome-cal.c: + Fixed some warnings. + +2000-09-01 Federico Mena Quintero <federico@helixcode.com> + + * gui/gnome-cal.c (gnome_calendar_new): Use + gnome_calendar_construct() so that we can check for proper + creation of the client. + (gnome_calendar_destroy): Check that the client exists before we + unref it. + (gnome_calendar_construct): Do the CalClient creation here. Bind + the views to it here as well instead of in setup_widgets(). + (gnome_calendar_init): Call setup_widgets() here. + + * gui/e-calendar-table.c (e_calendar_table_destroy): Unref the + model. + +2000-09-01 JP Rosevear <jpr@helixcode.com> + + * conduits/todo/todo-conduit.c: Update for new libical. + Conduits should atleast compile now. + + * conduits/calendar/calendar-conduit.c: ditto + + * Makefile.am: Build the conduits only when they've been + enabled. + +2000-09-01 JP Rosevear <jpr@helixcode.com> + + * gui/event-editor.c: Make toolbar save and close button. + We should put a similar menu option in sometime. + +2000-08-31 JP Rosevear <jpr@helixcode.com> + + * cal-util/cal-recur.c (array_to_list): Use + ICAL_RECURRENCE_ARRAY_MAX instead of MAX_SHORT + +2000-08-31 JP Rosevear <jpr@helixcode.com> + + * gui/event-editor.c (file_delete_cb): Implement delete option + (dialog_to_comp_object): Set the weekday start value and use + local not UTC time + +2000-08-31 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (file_delete_cb): No need to spit a warning + if removal fails. + (event_editor_destroy): Free the exception clist data. Unref the + calendar client here. + (close_dialog): Just call gtk_object_destroy() on the event + editor; the destroy handler will free everything else. + + * cal-client/cal-client.c (cal_client_object_exists): Removed + function; this is not useful because we operate asynchronously. + + * gui/e-day-view.c (e_day_view_on_delete_appointment): No need to + spit a warning if removal fails. + + * gui/e-week-view.c (e_week_view_on_delete_appointment): Likewise. + + * gui/calendar-model.c (calendar_model_delete_task): Likewise. + +2000-08-31 JP Rosevear <jpr@helixcode.com> + + * gui/event-editor.c (file_delete_cb): Implement delete option + (recurrence_toggled): Make an ugly hack to get the recurrence + pages showing properly since we don't yet implement all of the + recurrence rule stuff. + + * cal-client/cal-client.c (cal_client_object_exists): New function + to see if an object exists and is obtainable from the backend + + * cal-client/cal-client.h: Add prototype + +2000-08-31 JP Rosevear <jpr@helixcode.com> + + * gui/gnome-cal.c (editor_closed_cb): Event editor destroyed + callback to do hash cleanup + (gnome_calendar_edit_object): Set event editor calendar client. + + * gui/event-editor.h: Add new prototype + + * gui/event-editor.c: Trash signal stuff. We will manipulate + the client directly. Make the toolbar save and menu save items + work identically. Add icons to the toolbar. + (save_event_object): Call cal_client_update_object + (close_dialog): Unref the client and disconnect signals + Actually destroy the event editor object. + (obj_updated_cb): New function. Doesn't really do anything + yet but it will inform the user the event has changed elsewhere + in the future. + (obj_removed_cb): ditto + (event_editor_set_cal_client): New function to set the calendar + client + + * gui/gnome-cal.c (gnome_calendar_new_appointment): Commit + the sequence to the cal component and use non UTC times. + +2000-08-30 Lauris Kaplinski <lauris@helixcode.com> + + * gui/print.c: Countless small changes for gnome-print 0.21+ + +2000-08-30 Damon Chaplin <damon@helixcode.com> + + * gui/e-day-view.[hc]: + * gui/e-day-view-main-item.c: + * gui/e-week-view.[hc]: + * gui/e-week-view-main-item.c: + * gui/calendar-commands.c: + * gui/gnome-cal.[hc]: switched to using new ECalendar widget, + and a few other fixes. + +2000-08-30 Federico Mena Quintero <federico@helixcode.com> + + * gui/gnome-cal.h (GnomeCal): Removed unused field event_editor. + + * gui/e-day-view.c (e_day_view_key_press): Oops, set the + dtstart/dtend on the component before adding it. + (e_day_view_on_editing_stopped): No need to check for an UID. + Update the summary properly. + +2000-08-30 JP Rosevear <jpr@helixcode.com> + + * gui/e-week-view.c: Make sure the is_utc flag is always + FALSE for icaltime_from_timet + (e_week_view_on_unrecur_appointment): Use icaltimetype struct + from the stack and make sure tzid is always NULL + (e_week_view_key_press): ditto + +2000-08-30 JP Rosevear <jpr@helixcode.com> + + * gui/e-day-view.c: Make sure the is_utc flag is always + FALSE for icaltime_from_timet + (e_day_view_on_unrecur_appointment): Use icaltimetype struct + from the stack and make sure tzid is always NULL + (e_day_view_finish_long_event_resize): ditto + (e_day_view_finish_resize): ditto + (e_day_view_on_top_canvas_drag_data_received): ditto + (e_day_view_on_main_canvas_drag_data_received): ditto + +2000-08-30 JP Rosevear <jpr@helixcode.com> + + * cal-client/cal-client.c (add_instance): Actually add the + comp_instance struct to the instances list. We now appear + to able to keep events and todos between sessions. Yay! + +2000-08-29 Federico Mena Quintero <federico@helixcode.com> + + Now the views monitor the client by themselves; it does not make + sense to proxy all notifications through the GnomeCal. The + GnomeCal should just be a meta-widget that holds all the views. + + At some later point we'll want to decouple the views from the + GnomeCal so that they can be embedded anywhere; they should emit + signals to request appropriate actions from the toplevel GUI + instead of calling the GnomeCal directly. + + * gui/e-day-view.c (e_day_view_set_cal_client): New function; now + the day view monitors the client by itself. + (cal_loaded_cb): New callback; moved over from + e_day_view_update_all_events(). + (obj_updated_cb): New callback; moved over from + e_day_view_update_event(). + (obj_removed_cb): New callback; moved over from + e_day_view_remove_event(). + (e_day_view_update_all_events): Removed function. + (e_day_view_update_event): Removed function. + (e_day_view_remove_event): Removed function. + (*): Use the day_view->client directly instead of fetching it from + the GnomeCal. + (e_day_view_destroy): Unref the client. + (e_day_view_reload_events): Check if the client is loaded. + (e_day_view_key_press): Set the vtype of the new component. + + * gui/e-week-view.c (e_week_view_set_cal_client): New function. + (cal_loaded_cb): New callback. + (obj_updated_cb): New callback. + (obj_removed_cb): New callback. + (e_week_view_update_all_events): Removed function. + (e_week_view_update_event): Removed function. + (e_week_view_remove_event): Removed function. + (*): Use the week_view->client directly. + (e_week_view_destroy): Unref the client. + (e_week_view_reload_events): Check if the client is loaded. + + * gui/gnome-cal.c (setup_widgets): Set the cal_client on all the + views. + (gnome_calendar_update_all): Do not update the views, since now + they do it themselves. + (gnome_calendar_object_updated_cb): Likewise. + (gnome_calendar_object_removed_cb): Likewise. + (setup_widgets): Remove all to-do list cruft. + (gnome_calendar_colors_changed): Likewise. + (gnome_calendar_todo_properties_changed): Likewise. + + * gui/calendar-commands.h (todo_style_changed): Removed variable. + + * gui/gncal-todo.c: Removed old clist cruft; just left in the + temporary dialog box for now. + +2000-08-29 Dan Winship <danw@helixcode.com> + + * cal-client/client-test.c: + * cal-client/cal-client.c: + * conduits/todo/todo-conduit.h: + * conduits/calendar/calendar-conduit.h: remove USING_OAF checks. + +2000-08-29 JP Rosevear <jpr@helixcode.com> + + * gui/gnome-cal.c (gnome_calendar_edit_object): Use + event_editor_set_event_object + + * gui/event-editor.c (event_editor_set_event_object): Rename + from event_editor_set_ical_object + + * gui/event-editor.h: Update prototype + + * gui/e-week-view.c (e_week_view_on_new_appointment): + Call cal_component_commit_sequence after event changes. Default + to these being all day events. + +2000-08-29 JP Rosevear <jpr@helixcode.com> + + * gui/event-editor.c (dialog_to_comp_object): These are not UTC + times + +2000-08-28 Federico Mena Quintero <federico@helixcode.com> + + * cal-client/cal-client.c (cal_client_is_loaded): New function. + We need this from code that dynamically updates from a client and + could not have connected to the "cal_loaded" signal right after + the client was created. + + * gui/calendar-model.c (load_objects): Do not try to load the + objects if the client has not been loaded yet. + (cal_loaded_cb): Check the status value. + + * gui/calendar-model.h (CalendarModel): Declare the private + structure here so that gdb will give me love. + + * pcs/cal-factory.h (CalFactory): Likewise. + + * pcs/cal.h (Cal): Likewise. + + * cal-client/cal-listener.h (CalListener): Likewise. + + * cal-client/cal-client.h (CalClient): Likewise. + + * pcs/cal-backend.h (CalBackend): This no longer has a private + structure, so remove it. + + * cal-util/Makefile.am (libcal_util_la_SOURCES): Removed the + vCalendar and old iCalendar cruft. + (libcal_utilinclude_HEADERS): Likewise. + Removed the obsolete iCalendar test program. + +2000-08-28 JP Rosevear <jpr@helixcode.com> + + * cal-util/timeutil.h: We no longer need time_from_icaltimetype + as libical has the API for this + + * cal-util/timeutil.c: ditto + + * cal-util/cal-recur.c: Replace time_from_icaltimetype with + icaltime_as_timet + + * gui/calendar-model.c: ditto + + * gui/event-editor.c: ditto + + * gui/gnome-cal.c: ditto + +2000-08-28 Federico Mena Quintero <federico@helixcode.com> + + * pcs/cal-backend-file.c (remove_component): Remove the + icalcomponent from the toplevel calendar here. + (cal_backend_file_update_object): Do not remove it here. + (cal_backend_file_remove_object): Do not remove it here. + (add_component): Add the icalcomponent to the toplevel calendar if + asked to. + (cal_backend_file_update_object): Do not add it here. + +2000-08-28 JP Rosevear <jpr@helixcode.com> + + * gui/event-editor.c (dialog_to_comp_object): Initiliaze tzid to + null, only set recurrence rules and exception dates if there + are any + +2000-08-27 JP Rosevear <jpr@helixcode.com> + + * pcs/cal-backend-file.c (save): Write out the calendar object + (cal_backend_file_update_object): Remove/add the icalcomponent + from our master icalcomponent (the calendar) + (cal_backend_file_remove_object): Remove the icalcomponent + from our master icalcomponent + +2000-08-26 JP Rosevear <jpr@helixcode.com> + + * gui/Makefile.am: Remove gnorba stuff + + * gui/main.c: ditto + + * gui/component-factory.c: ditto + + * gui/control-factory.c: ditto + + * gui/*.gnorba: ditto + +2000-08-25 JP Rosevear <jpr@helixcode.com> + + * gui/e-calendar-table.c (e_calendar_table_init): Uncomment + debug code. + + * gui/calendar-model.c (set_complete): Set the completed + date to the current date + (calendar_model_set_value_at): Handle complete field + +2000-08-25 JP Rosevear <jpr@helixcode.com> + + * gui/calendar-model.c (get_is_complete): Don't attempt to + free this if its null + (calendar_model_duplicate_value): Implement for summary field + value + (calendar_model_initialize_value): Remove debug code + + * gui/e-calendar-table.c: Correct etable init xml + (create_column): Pass the id to e_table_header_add_column + rather than a hard coded one + (e_calendar_table_init): Make sure summary column isn't + added twice. Add an alarms column, else etable won't + work with columns who have an ID higher than that + +2000-08-24 JP Rosevear <jpr@helixcode.com> + + * gui/gncal-todo.c (ok_button): Properly append to list + + * gui/event-editor.c (dialog_to_comp_object): ditto + + * gui/e-day-view.c (e_day_view_on_new_appointment): The base + times are not UTC + + * gui/e-week-view.c (e_week_view_on_new_appointment): ditto + +2000-08-24 JP Rosevear <jpr@helixcode.com> + + * Update for libical 0.19 + +2000-08-24 Christopher James Lahey <clahey@helixcode.com> + + * gui/calendar-commands.c, gui/e-day-view.c, gui/e-week-view.c, + gui/event-editor.c, gui/gncal-todo.c, gui/gnome-cal.c, gui/prop.c: + Fixed some warnings. + +2000-08-24 JP Rosevear <jpr@helixcode.com> + + * gui/e-week-view.c (e_week_view_on_new_appointment): Do not alloc + the struct icaltimetype but point to one on the stack. More + importantly, set the date.tzid to NULL. + +2000-08-24 JP Rosevear <jpr@helixcode.com> + + * gui/gnome-cal.c (save_event_object_cb): Make signal + names saner + (released_event_object_cb): ditto + (gnome_calendar_edit_object): ditto + + * gui/event-editor.h: Make signal names saner + + * gui/event-editor.c (event_editor_class_init): Make signal + names saner now that we don't use ical object + (save_event_object): ditto with callback names + (file_save_cb): ditto + (tb_save_and_close_cb): ditto + (event_editor_set_ical_object): ditto + + * gui/e-day-view.c (e_day_view_update_event): Umm, + != CAL_COMPONENT_EVENT (I hope that wasn't me!) + +2000-08-24 Federico Mena Quintero <federico@helixcode.com> + + * gui/e-day-view.c (e_day_view_on_new_appointment): Do not alloc + the struct icaltimetype but point to one on the stack. More + importantly, set the date.tzid to NULL. + +2000-08-24 JP Rosevear <jpr@helixcode.com> + + * gui/event-editor-dialog.glade: Remove owner field + + * gui/event-editor.c (clear_widgets): Forget about owner field + (get_widgets): ditto + (fill_widgets): ditto + +2000-08-24 JP Rosevear <jpr@helixcode.com> + + * gui/calendar-model.c (calendar_model_initialize_value): Handle + summary field + (calendar_model_value_is_empty): ditto + (calendar_model_free_value): ditto + +2000-08-23 JP Rosevear <jpr@helixcode.com> + + * gui/event-editor-dialog.glade: Remove status bar + + * cal-util/cal-component.c (cal_component_set_rrule_list): Allow + a null list + (cal_component_set_rdate_list): Allow a null list + + * gui/e-day-view.c (e_day_view_on_new_appointment): Commit + the CalComponent sequence + +2000-08-23 Federico Mena Quintero <federico@helixcode.com> + + * gui/main.c: #include <e-util/e-cursors.h> + + * gui/e-day-view-time-item.c (e_day_view_time_item_draw): + Initialize time_min_x1 and hour_r to keep gcc happy. + + * gui/e-day-view.c (e_day_view_update_event_label): Warning fix. + (e_day_view_update_main_canvas_drag): Initialize start_row. + + * gui/e-week-view-event-item.c (e_week_view_event_item_draw): + Initialize time_y_small_min, icon_x. + + * Makefile.am (SUBDIRS): Re-enable the gui directory. + + * gui/prop.c (prop_store_alarm_default_values): Temporarily #if 0 + out. + +2000-08-23 JP Rosevear <jpr@helixcode.com> + + * gui/e-week-view.c (e_week_view_key_press): Set vtype of new + CalComponent + (e_week_view_on_new_appointment): ditto + + * gui/e-day-view.c (e_day_view_on_new_appointment): ditto + +2000-08-23 JP Rosevear <jpr@helixcode.com> + + * gui/e-day-view-time-item.c: Include gnome.h for gettext purposes + + * gui/gnome-cal.c: ditto + + * gui/prop.c: #if out some alarm stuff + +2000-08-23 Federico Mena Quintero <federico@helixcode.com> + + * gui/e-calendar-table.c (e_calendar_table_init): Updated + function. + (e_calendar_table_open_task): Updated function. + +2000-08-21 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-model.c (calendar_model_duplicate_value): Updated + function. + (calendar_model_free_value): Updated function. + (calendar_model_initialize_value): Updated function. + (calendar_model_value_is_empty): Updated function. + (remove_object): Updated function. + (obj_updated_cb): Updated function. + (calendar_model_get_cal_client): Added inline docs. + (calendar_model_delete_task): Updated. + (calendar_model_mark_task_complete): Updated. + (calendar_model_get_cal_object): Updated. + +2000-08-21 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-model.c (set_categories): New function. + (parse_time): Moved over from the old set_time_t(). This just + parses the time and leaves the warning dialog for the caller. + (set_datetime): New function. + (set_geo): Updated old function. + (set_percent): Updated old function. + (set_priority): Updated old function. + (set_summary): New function. + (set_url): New function. + (calendar_model_set_value_at): Updated function. + (calendar_model_is_cell_editable): Updated function. + (calendar_model_append_row): Updated. Added an ugly hack to + accomodate ETable's lack of a real API for adding new items. + Also, don't try to set columns that are not editable. + +2000-08-21 JP Rosevear <jpr@helixcode.com> + + * gui/e-week-view.c (e_week_view_reload_events): + Use CalObjType + + * gui/e-day-view.c (e_day_view_reload_events): ditto + +2000-08-21 JP Rosevear <jpr@helixcode.com> + + * gui/e-day-view-main-item.c (e_day_view_main_item_draw_day_event): + Use CalComponent instead of iCalObject. #if some alarm stuff + +2000-08-21 JP Rosevear <jpr@helixcode.com> + + * gui/e-day-view-top-item.c (e_day_view_top_draw_long_event): + Use CalComponent instead of iCalObject. #if some alarm stuff + +2000-08-21 JP Rosevear <jpr@helixcode.com> + + * gui/e-day-view.h: Update prototypes + + * gui/e-day-view.c (e_day_view_on_unrecur_appointment): + Remove commented out portions. + + * gui/e-week-view.c (e_week_view_on_unrecur_appointment): + Tidy. + +2000-08-21 JP Rosevear <jpr@helixcode.com> + + * gui/e-day-view.c + (e_day_view_update_event): Use CalComponent + instead of iCalObject. Work around not having a compare + dates routine for two CalComponents. + (e_day_view_reshape_long_event): Use CalComponent instead + of iCalObject, #if some alarm stuff + (e_day_view_reshape_day_event): ditto + (e_day_view_reload_events): Use revamped CalClient + (e_day_view_update_event_cb): Use CalComponent + instead of iCalObject + (e_day_view_foreach_event_with_uid): ditto + (e_day_view_remove_event_cb): ditto + (e_day_view_update_event_label): ditto + (e_day_view_find_event_from_uid): ditto + (e_day_view_on_event_click): ditto + (e_day_view_on_event_right_click): ditto + (e_day_view_on_new_appointment): ditto + (e_day_view_on_edit_appointment): ditto + (e_day_view_on_delete_occurrence): ditto + (e_day_view_on_delete_appointment): ditto + (e_day_view_on_unrecur_appointment): ditto + (e_day_view_on_top_canvas_motion): ditto + (e_day_view_on_main_canvas_motion): ditto + (e_day_view_finish_long_event_resize): ditto + (e_day_view_finish_resize): ditto + (e_day_view_free_event_array): ditto + (e_day_view_add_event): ditto + (e_day_view_key_press): ditto + (e_day_view_on_editing_stopped): ditto + (e_day_view_update_top_canvas_drag): ditto + (e_day_view_update_main_canvas_drag): ditto + (e_day_view_on_drag_data_get): ditto + (e_day_view_on_top_canvas_drag_data_received): ditto + (e_day_view_on_main_canvas_drag_data_received): ditto + +2000-08-20 JP Rosevear <jpr@helixcode.com> + + * gui/e-week-view-event-item.c (e_week_view_event_item_draw_icons): + Use CalComponent instead of iCalObject. #if some alarm stuff + +2000-08-20 JP Rosevear <jpr@helixcode.com> + + * gui/e-week-view.c (e_week_view_update_event): Use CalComponent + instead of iCalObject. Work around not having a compare + dates routine for two CalComponents. + (e_week_view_reload_events): Use revamped CalClient + (e_week_view_reshape_event_span): Use CalComponent instead + of iCalObject, #if some alarm stuff + (e_week_view_update_event_cb): Use CalComponent instead of + iCalObject + (e_week_view_foreach_event_with_uid): ditto + (e_week_view_remove_event_cb): ditto + (e_week_view_free_events): ditto + (e_week_view_add_event): ditto + (e_week_view_on_editing_stopped): ditto + (e_week_view_find_event_from_uid): ditto + (e_week_view_key_press): ditto + (e_week_view_show_popup_menu): ditto + (e_week_view_on_new_appointment): ditto + (e_week_view_on_edit_appointment): ditto + (e_week_view_on_delete_occurrence): ditto + (e_week_view_on_delete_appointment): ditto + (e_week_view_on_unrecur_appointment): ditto + + * gui/e-week-view.h: Update prototypes. + +2000-08-18 JP Rosevear <jpr@helixcode.com> + + * gui/event-editor.h: Update prototypes. + + * gui/event-editor.c: Need to come back here later to fix the + alarm stuff. The gui also needs to be completely redone to + support the fancier CalComponent settings (exrules, rdates, etc) + There are some warnings that I put in to mark some of these + spots + (event_editor_destroy): Use Calcomponent instead + of iCalObject + (make_title_from_comp): ditto + (clear_widgets): ditto + (fill_widgets): ditto + (classification_get): ditto + (dialog_to_comp_object): ditto + (save_ical_object): ditto + (close_dialog): ditto + (event_editor_set_ical_object): ditto + +2000-08-17 JP Rosevear <jpr@helixcode.com> + + * gui/gncal-todo.c (ok_button): Use CalComponent instead of + iCalObject + (cancel_button): ditto + (gncal_todo_edit): ditto + (add_todo): ditto + (edit_todo): ditto + (delete_todo): ditto + (insert_in_clist): ditto + (gncal_todo_update): ditto + + * gui/gncal-todo.h: Update prototypes + +2000-08-16 JP Rosevear <jpr@helixcode.com> + + Rework gnome-cal.c - alarms are a tad broken ATM so this + will need more cleaning later. + + * gui/gnome-cal.c (snooze): Use CalComponent instead of + iCalObject + (edit): ditto + (audio_notification): ditto + (display_notification_cb): Use CalComponent member of + alarm_notify_closure rather than iCalObject + (display_notification): ditto + (trigger_alarm_cb): ditto. Use CalComponent alarm types + (gnome_calendar_tag_calendar_cb): New + cal_client_generate_instances callback to + mark_gtk_calendar_day's + (gnome_calendar_tag_calendar): Use above callback + (save_ical_object_cb): Use CalComponent instead of + iCalObject + (gnome_calendar_edit_object): ditto + (gnome_calendar_new_appointment): ditto + +2000-08-15 JP Rosevear <jpr@helixcode.com> + + * gui/mark.c (mark_month_item_cb): Callback used to mark every + event in a month. + (mark_month_item): Use cal_client_generate_instances with + above callback + +2000-08-15 JP Rosevear <jpr@helixcode.com> + + * gui/print.c (print_month_small): Use + cal_client_get_objects_in_range + (print_day_details_cb): Callback used to create columns and fill + events into a day view. Code should be shared with e-day-view + in reality. Maybe need to go back to layout.[hc] a bit later + (print_day_details): Use cal_client_generate_instances with + above callback. Iterate over results to expand events to fit. + (print_day_summary_cb): Callback to build list of event info + for a day + (print_day_summary): Use cal_client_generate_instances with + above callback to generate the required event info for printing + (print_todo_details_cb): Callback used create list of todo info + (print_todo_details): Use cal_client_generate_instances with + above callback to generate required todo info for printing. + + * gui/layout.[hc]: No longer used. + +2000-08-12 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-model.c (get_is_overdue): Finished implementing. + (calendar_model_value_at): Handle the color field. + +2000-08-11 Seth Alves <alves@hungry.com> + + * cal-util/cal-component.c (cal_component_get_pilot_id): + (cal_component_set_pilot_id): stubs for pilot id accessors + (cal_component_get_pilot_status): + (cal_component_set_pilot_status): stubs for pilot status accessors + + * conduits/calendar/calendar-conduit.c (transmit): start to + convert to cal-component interface + + * conduits/todo/todo-conduit.c (transmit): same + +2000-08-11 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-model.c (get_geo): Generate a prettier string for + the geographical position. + (get_classification): New function. + (get_categories): New function. + (get_completed): New function. + (get_dtend): New function. + (get_dtstart): New function. + (get_due): New function. + (get_percent): New function. + (get_priority): New function. + (get_summary): New function. + (get_transparency): New function. + (get_url): New function. + (get_has_alarms): New function. + (get_has_recurrences): New function. + (get_is_complete): New function. + (get_is_overdue): New function. + + * cal-util/cal-component.c (scan_property): Handle the GEO + property. + (free_icalcomponent): Likewise. + (cal_component_get_geo): Likewise. + (cal_component_set_geo): Likewise. + (cal_component_free_geo): Likewise. + (cal_component_set_exdate_list): Removed incorrect assertion. + (cal_component_set_exrule_list): Removed incorrect assertion. + (cal_component_get_next_alarm): Oops, this had not been + implemented at all. + (cal_component_has_rdates): New function. + (cal_component_has_rrules): New function. + + * cal-util/cal-component.h (CalComponentField): Added the GEO + property. + +2000-08-11 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (scan_property): Handle the + PERCENT-COMPLETE property. + (free_icalcomponent): Likewise. + (cal_component_get_percent): Likewise. + (cal_component_set_percent): Likewise. + (cal_component_free_percent): Likewise. + (scan_property): Handle the PRIORITY property. + (free_icalcomponent): Likewise. + (cal_component_get_priority): Likewise. + (cal_component_set_priority): Likewise. + (cal_component_free_priority): Likewise. + + * cal-util/cal-component.h (CalComponentField): New enumeration + with the list of fields we support for ETable. + +2000-08-10 Dan Winship <danw@helixcode.com> + + * gui/component-factory.c (owner_set_cb): Update prototype. + +2000-08-10 Federico Mena Quintero <federico@helixcode.com> + + * gui/gnome-cal.c (gnome_calendar_new_appointment): New function. + Mostly moved over from calendar-commands.c:display_objedit(). + + * gui/calendar-commands.c (calendar_iterate): Removed. Wheee! + (display_objedit): Removed. + (new_appointment_cb): New function. Just call + gnome_calendar_new_appointment(). + (display_objedit_today): Removed. + (calendar_control_activate): Removed the "New appointment for + today" option, since it is pretty useless. + +2000-08-10 Federico Mena Quintero <federico@helixcode.com> + + * cal-client/cal-client.c (cal_client_generate_instances): There. + A pretty function to generate recurrence instances atomically so + that clients don't have to jump through hoops. Now we can get rid + of the ugly calendar_iterate() function. + +2000-08-09 Cody Russell <bratsche@gnome.org> + + * gui/calendar-commands.c: Make the toolbar honor the user's + gnomecc settings for detachable toolbars. + +2000-08-09 Federico Mena Quintero <federico@helixcode.com> + + * gui/alarm.c (pop_alarm): Oops, subtract the new alarm's trigger + time from the current time. + +2000-08-09 Christopher James Lahey <clahey@helixcode.com> + + * cal-client/cal-client.c: Fixed a warning. + +2000-08-09 Christopher James Lahey <clahey@helixcode.com> + + * cal-client/cal-client.c, gui/e-calendar-table.c, pcs/cal.c: + Fixed some warnings. + +2000-08-08 Federico Mena Quintero <federico@helixcode.com> + + * idl/evolution-calendar.idl (Cal): Added a get_objects_in_range() + method. Takes in a time range and the type of component we are + interested in; returns a list of UIDs. The idea is that + ocurrences get computed in the client; we can have multiple + recurrences in iCalendar and we cannot identify them trivially + across the wire. + (Cal): Removed the get_events_in_range() method. + + * pcs/cal-backend.c (cal_backend_free_uid_list): New function. + (cal_backend_get_objects_in_range): New function. + (cal_backend_get_events_in_range): Removed. + + * pcs/cal-backend-file.c (cal_backend_file_get_objects_in_range): + Implemented new method. + (cal_backend_file_get_events_in_range): Removed. + + * pcs/cal.c (Cal_get_events_in_range): Removed. + (uncorba_obj_type): New function. + (Cal_get_uids): Use uncorba_obj_type(). + (Cal_get_n_objects): Likewise. + (Cal_get_objects_in_range): Implemented new method. + + * cal-client/cal-client.c (cal_client_get_events_in_range): Removed. + (cal_client_get_objects_in_range): Implemented. + (corba_obj_type): New function. + (cal_client_get_n_objects): Use corba_obj_type(). + (cal_client_get_uids): Likewise. + +2000-08-07 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (cal_component_clone): New function. + (cal_component_get_icalcomponent): Ensure that the SEQUENCE + property does not need incrementing. + + * gui/dialogs/alarm-notify-dialog.c (alarm_notify_dialog): Use + CalComponent. Deal with an empty summary property. + +2000-08-07 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (cal_component_get_as_string): Doh, + libical owns the string's memory, so do not free it. + + * cal-client/client-test.c (create_client): Connect to the destroy + signal of the client here. + + * cal-client/test.ics: New test file, modified from Eric Busboom's + test file from RFC 2445. + +2000-08-05 Federico Mena Quintero <federico@helixcode.com> + + * cal-client/client-test.c (dump_component): This was gone for + some reason. + (main): Load a new test file. + +2000-08-04 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (cal_component_commit_sequence): New + function to commit changes to the SEQUENCE property. + (cal_component_get_as_string): Ensure that the sequence has been + committed. + + * cal-client/cal-client.c (cal_client_get_object): Use + CalComponent instead of the old iCalObject. + (cal_client_update_object): Use iCalObject. Commit the SEQUENCE + property before stringifying the object and piping it over to the + Wombat. + +2000-08-04 Seth Alves <alves@hungry.com> + + * conduits/todo/todo-conduit.c (conduit_get_gpilot_conduit): if + oaf isn't initialized by the time the conduit starts, start it + up. we do this because we need to start wombat with oaf, and + gpilotd doesn't currently start oaf. + +2000-08-04 Michael Meeks <michael@helixcode.com> + + * gui/calendar-commands.c (calendar_control_activate): unref. + +2000-08-02 Federico Mena Quintero <federico@helixcode.com> + + * pcs/cal-backend-file.c (cal_backend_file_get_uid_by_pilot_id): + Added stub for now. + (cal_backend_file_update_pilot_id): Likewise. + + * pcs/Makefile.am (libpcs_a_SOURCES): Removed cal-backend-imc.[ch] + from the list of sources. The idea is to move vCalendar importing + to the GUI as a convenience function. + +2000-08-02 Seth Alves <alves@hungry.com> + + * pcs/cal-backend-imc.c (cal_backend_imc_update_pilot_id): call + save (cbimc) after setting the pilot id and status. + +2000-08-02 Joe Shaw <joe@helixcode.com> + + * pcs/cal-backend-file.c (cal_backend_file_update_pilot_id): + Fixed a g_return_if_fail that had two parameters and thus + wouldn't build. + +2000-08-03 Damon Chaplin <damon@helixcode.com> + + * gui/calendar-model.c (calendar_model_append_row): updated to match + the new ETableModel append_row. This meant we could also get rid of + the row_being_added and idle_id hack. + +2000-08-02 Christopher James Lahey <clahey@helixcode.com> + + * gui/calendar-model.c: Emit "model_pre_change" signals as + appropriate. + +2000-08-02 Federico Mena Quintero <federico@helixcode.com> + + * pcs/cal-backend-file.[ch]: New files for the iCalendar file + backend. + + * pcs/Makefile.am (libpcs_a_SOURCES): Added cal-backend-file.[ch]. + + * cal-util/cal-component.c (cal_component_set_icalcomponent): + Return an operation success code for if we are passed a component + of a type we don't support. + +2000-07-31 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-recur.c (*): Use CalComponent and the new property + types instead of the old iCalObject stuff. + (cal_recur_generate_instances): Renamed from + cal_object_generate_events(). Ensure that the component has the + DTSTART property. + (generate_instances_for_year): Renamed from + cal_object_generate_events_for_year(). + (cal_obj_expand_recurrence): Made static. + (cal_recur_from_icalrecurrencetype): New function. We should + really convert this whole file to use struct icalrecurrencetype + instead. + (cal_recur_free): New function. + + * cal-util/cal-recur.h (CalRecurType): Renamed from CalObjRecurType. + (CalRecurrence): Renamed from CalObjRecurrence. + + * cal-util/timeutil.c (time_from_icaltimetype): New function. + + * cal-util/Makefile.am: Commented out the test-recur program. + +2000-08-01 Damon Chaplin <damon@helixcode.com> + + * Removed doc directory, since it is the old gnome-pim docs which + aren't used any more. + + * Makefile.am (SUBDIRS): removed doc. + +2000-07-26 Peter Williams <peterw@helixcode.com> + + * gui/calendar-model.c: compile fix for Solaris + (works under Linux, too; don't know about others) + + * this is a test of whether CVS merge does what I + think it will do. + +2000-07-26 Federico Mena Quintero <federico@helixcode.com> + + OK, it seems that we have all the interesting properties for + single-user calendars now. RFC 2445 can bite me. + + * cal-util/cal-component.c (scan_property): Handle the RRULE + property. Yay!. + (scan_recur): Likewise, yow! + (get_recur_list): Likewise, yeehaw! + (get_recur_list): Likewise, honk honk! + (set_recur_list): Likewise, booooga booooga! + (cal_component_get_rrule_list): Likewise, squeek squeek! + (cal_component_set_rrule_list): That's it, I ran out of sounds. + (cal_component_free_recur_list): Likewise. + (scan_property): Handle the EXRULE property. + (free_icalcomponent): Likewise. + (cal_component_get_exrule_list): Likewise. + (cal_component_set_exrule_list): Likewise. + (set_period_list): Oops, free the old properties as well as + removing them. + (set_text_list): Ditto. + (cal_component_set_exdate_list): Ditto. + + * cal-util/cal-component.c: Put all the functions used to free + returned values all together. + (cal_component_set_rdate_list): Oops, mark SEQUENCE property to be + incremented since the RFC requires it. + (scan_property): Handle the EXDATE property. + (scan_exdate): Likewise. + (free_icalcomponent): Likewise. + (cal_component_get_exdate_list): Likewise. + (cal_component_set_exdate_list): Likewise. + (cal_component_free_exdate_list): Likewise. + +2000-07-26 Jeffrey Stedfast <fejj@helixcode.com> + + * gui/Makefile.am: Fixed a typo + +2000-07-26 Jeffrey Stedfast <fejj@helixcode.com> + + * gui/Makefile.am: Added a few xpm files to the EXTRA DIST section + +2000-07-25 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (cal_component_free_period_list): New function. + (scan_property): Handle the RDATE property. + (scan_period): Likewise. + (free_icalcomponent): Likewise. + (get_period_list): Likewise. + (set_period_list): Likewise. + (cal_component_get_rdate_list): Likewise. + (cal_component_set_rdate_list): Likewise. + (scan_text): Simplify a bit since we only handle the ALTREP + parameter; there is no need to iterate over all parameters. + (scan_datetime): Simplify; just handle the TZID parameter. + (scan_summary): Simplify; just handle the ALTREP parameter. + (cal_component_get_as_string): New function. + + * idl/evolution-calendar.idl (CalObjType): Removed the TYPE_OTHER; + now we only expose the types of objects we know about. + + * cal-util/cal-util.h (CalObjType): Likewise. + + * cal-client/cal-client.c (cal_client_get_n_objects): Likewise. + (cal_client_get_uids): Likewise. + + * conduits/calendar/calendar-conduit.c (get_calendar_objects): Likewise. + (check_for_slow_setting): Likewise. + + * pcs/cal-backend-imc.c (count_objects): Likewise. + (build_uids_list): Likewise. + + * pcs/cal.c (Cal_get_uids): Likewise. + (Cal_get_n_objects): Likewise. + +2000-07-25 Damon Chaplin <damon@helixcode.com> + + * gui/e-calendar-table.[hc]: new ECalendarTable to show an ETable view + for Todo/Event items. + + * gui/task-assigned-to.xpm: + * gui/task-recurring.xpm: + * gui/task-assigned.xpm: + * gui/task.xpm: new pixmaps (all the same at present) to go in the + icon column of the ETable. + + * gui/event-editor.c: hid the silly 'Calendar' labels on the + GnomeDateEdits and hid the times when you select 'All day event'. + Also adjusted the time_t's so that when an all day event finishes on + say midnight 13th May, we show 12th May in the dialog, since it + implicitly includes all of that day up to midnight. + + * gui/dialogs/task-editor-dialog.glade: + * gui/dialogs/task-editor.[hc]: unfinished dialog to edit tasks. + + * gui/gncal-todo.c: temporary hack so that we can use the simple dialog + with our new ETable. + +2000-07-23 Damon Chaplin <damon@helixcode.com> + + * cal-util/calobj.h: added a few more fields. + + * cal-util/calobj.c (ical_object_create_from_vobject): check for a + NULL return from vObjectUStringZValue for URL property to avoid SEGV. + For some reason an empty 'URL:' property appears and causes trouble. + +2000-07-20 Ettore Perazzoli <ettore@helixcode.com> + + * gui/component-factory.c (factory_fn): Update for the new + `evolution_shell_component_new()' arg. + +2000-07-19 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (cal_component_alarm_set_trigger): + Finish filling the trigger. What a pain, again. + (cal_component_alarm_free_trigger): Implemented. + +2000-07-19 Fatih Demir <kabalak@gmx.net> + + * conduits/calendar/calendar-conduit-control-applet.desktop: + + * conduits/todo/todo-conduit-control-applet.desktop: + Added the Turkish desktop entries. + +2000-07-18 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (cal_component_alarm_free): Free the + icalcomponent if this is an unattached alarm. + (scan_alarm_property): Handle the TRIGGER property. + (cal_component_alarm_get_trigger): Ditto. Royal pain. + (cal_component_alarm_set_trigger): Ditto. Less pain. + +2000-07-17 Federico Mena Quintero <federico@helixcode.com> + + * cal-client/cal-client.c (cal_client_get_object): Fixed inline + docs. + (cal_client_new): Ditto. + (cal_client_get_n_objects): Added inline docs. + +2000-07-14 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (CalComponentAlarm): New internal + represntation for alarm components. We really don't map them to a + CalComponent because it is more convenient to handle them as + "child" structures. + (make_alarm): New function to create a CalComponentAlarm from an + icalcomponent representing a VALARM. + (scan_alarm_property): New function to scan a property from an + alarm component. We support ACTION. + (cal_component_get_first_alarm): New function to start an iterator + over the alarms in a calendar component. + (cal_component_alarm_get_action): New function. + (cal_component_alarm_set_action): New function. + +2000-07-13 Seth Alves <alves@hungry.com> + + * conduits/todo/todo-conduit.c: conduit based on the calendar conduit. + this conduit syncs a pilot's ToDoDB database to wombat's list of "todo" + events. + + * gui/gncal-todo.c (simple_todo_editor): set todo's priority control + based on value from ical object during edit. + +2000-07-12 Federico Mena Quintero <federico@helixcode.com> + + * gui/print.c: Revert Michael's GnomeFont patch until the + gnome-print API stabilizes. + +2000-07-12 Michael Meeks <michael@helixcode.com> + + * gui/print.c (titled_box, print_text, print_month_small), + (bound_text): GnomeFont update. + +2000-07-12 Seth Alves <alves@hungry.com> + + * conduits/calendar/calendar-conduit.c: fixed various problems + + * cal-client/Makefile.am: build a static version of the library + to link with the conduits + + * cal-util/Makefile.am: same + +2000-07-11 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (scan_property): Handle the COMPLETED + property. + (free_icalcomponent): Ditto. + (cal_component_get_completed): Ditto. + (cal_component_set_completed): Ditto. + (scan_property): Handle the TRANSPARENCY property. + (free_icalcomponent): Ditto. + (cal_component_get_transparency): Ditto. + (cal_component_set_transparency): Ditto. + (scan_property): Handle the URL property. + (free_icalcomponent): Ditto. + (cal_component_get_url): Ditto. + (cal_component_set_url): Ditto. + + * pcs/cal-factory.c (queue_load_create_job): Removed unneeded + check for the URI. + (load_fn): Be more paranoid about the URI and notify the listener + if we got passed a bad URI. Simplify the termination code a bit. + (create_fn): Likewise. + (queue_load_create_job): Be more paranoid about the URI. + +2000-07-10 Ettore Perazzoli <ettore@helixcode.com> + + * gui/Makefile.am: Remove pilot stuff for now. + + * Makefile.am (SUBDIRS): Remove `conduits'. + +2000-07-10 Dan Winship <danw@helixcode.com> + + * gui/Makefile.am (EXTRA_DIST): remove gnomecal.conduit + + * conduits/calendar/Makefile.am (EXTRA_DIST): We want + calendar.conduit.in, not calendar.conduit. + +2000-07-10 Seth Alves <alves@hungry.com> + + * gui/Makefile.am (SUBDIRS): + * conduits/calendar/Makefile.am: moved calendar-conduit stuff from + the gui directory to here. + + * Makefile.am (SUBDIRS): added conduits to SIBDIRS + +2000-07-08 Ettore Perazzoli <ettore@helixcode.com> + + * gui/calendar-commands.c (calendar_control_activate): Remove + "close calendar" command. + +2000-07-08 Anders Carlsson <andersca@gnu.org> + + * gui/e-week-view.c (e_week_view_on_button_press): Handle mouse wheel scrolling. + + * gui/e-day-view.c (e_day_view_on_time_canvas_button_press): New function to handle + mouse wheel scrolling. + (e_day_view_on_main_canvas_button_press): Handle mouse wheel scrolling. + +2000-07-07 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (scan_property): Handle the SEQUENCE + property. + (free_icalcomponent): Ditto. + (cal_component_get_sequence): Ditto. + (cal_component_set_sequence): Ditto. + (cal_component_free_sequence): Ditto. + (cal_component_set_last_modified): Removed incorrect assertion. + (CalComponentPrivate): New need_sequence_inc flag. The sequence + number must be incremented when certain properties change, so we + store a flag that says if we need to bump it when piping the + object over the wire. + (free_icalcomponent): Reset need_sequence_inc. + (cal_component_set_dtstart): Set need_sequence_inc. + (cal_component_set_dtend): Ditto. + (cal_component_set_due): Ditto. + +2000-07-06 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (scan_property): Handle the + LAST-MODIFIED property. + (free_icalcomponent): Ditto. + (cal_component_get_last_modified): Ditto. + (cal_component_set_last_modified): Ditto. + (get_icaltimetype): New function to get struct icaltimetype + values. + (cal_component_get_created): Use get_icaltimetype(). + (set_icaltimetype): New function to set struct icaltimetype + values. + (cal_component_set_created): Use set_icaltimetype(). + + * cal-util/cal-component.c (scan_property): Handle the CREATED + property. + (free_icalcomponent): Ditto. + (cal_component_free_icaltimetype): Ditto. + (cal_component_get_created): Ditto. + (cal_component_set_created): Ditto. + (cal_component_init): Do not create an UID here. + (ensure_mandatory_properties): New function to ensure that the + mandatory RFC properties are indeed in the component. If they are + not, we create them on the fly. + (cal_component_set_new_vtype): Use ensure_mandatory_properties(). + (cal_component_set_icalcomponent): Ditto. + (cal_component_get_uid): Return the UID in a parameter, not as a + function return value, for consistency's sake. + (scan_property): Handle the DTSTAMP property. + (free_icalcomponent): Ditto. + (cal_component_get_dtstamp): Ditto. + (cal_component_set_dtstamp): Ditto. + +2000-07-04 Damon Chaplin <damon@helixcode.com> + + * gui/gncal-todo.c (gncal_todo_update): Use &obj instead of &ico in + the call to cal_client_get_object(). The ToDo list should work now. + + * gui/event-editor-dialog.glade: set the toplevel GnomeApp to invisible + so it doesn't appear and then resize. + +2000-07-03 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (cal_component_get_summary): Use + CalComponentText instead of CalComponentPropSummary. Removed the + latter typedef. + (cal_component_set_summary): Likewise. + (scan_property): Handle the CLASSIFICATION property. + (cal_component_get_classification): Ditto. + (cal_component_set_classification): Ditto. + + * cal-util/cal-component.c (cal_component_free_text_list): Renamed + from cal_component_free_description_list(). We can share this + function since both comments and descriptions have the same form. + (scan_text): Ditto. + (get_text_list): New function. + (set_text_list): New function. + (cal_component_get_description_list): Use get_text_list(). + (cal_component_set_description_list): Use set_text_list(). + (cal_component_set_uid): Add sanity check. + (cal_component_get_summary): Ditto. + (cal_component_get_description_list): Ditto. + (cal_component_get_dtstart): Ditto. + (cal_component_get_dtend): Ditto. + (cal_component_get_due): Ditto. + (scan_property): Handle the COMMENT property. + (cal_component_get_comment_list): Ditto. + (cal_component_set_comment_list): Ditto. + +2000-07-02 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (scan_categories): Handle CATEGORIES. + This can appear multiple times, so we maintain a list. We + compress them later to a single property with multiple values. + (cal_component_get_categories_list): Ditto. + (cal_component_set_categories_list): Ditto. + (cal_component_free_categories_list): Ditto. + (free_icalcomponent): Properly free the mappings. + +2000-07-02 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (scan_datetime): Handle date/time and + timezone pairs. + (scan_property): Handle DTSTART and DTEND. + (cal_component_free_datetime): Ditto. + (get_datetime): Ditto. + (cal_component_get_dtstart): Ditto. + (set_datetime): Ditto. + (cal_component_set_dtstart): Ditto. + (cal_component_get_dtend): Ditto. + (cal_component_set_dtend): Ditto. + (scan_property): Handle DUE date. + (cal_component_get_due): Ditto. + (cal_component_set_due): Ditto. + +2000-07-01 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (cal_component_get_description_list): + Handle the DESCRIPTION property. There can be multiple + descriptions with parameters each, so we deal with a list instead + of a single structure. + (cal_component_set_description_list): Ditto. + (cal_component_free_description_list): Ditto. + (scan_property): Ditto. + (scan_description): Ditto. + +2000-06-30 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c (cal_component_get_summary): To avoid + passing a million parameters to setters/getters for properties + that support parameters, we now pass client-side structures + instead. Here we use CalComponentPropSummary. + (cal_component_set_summary): Ditto. + +2000-06-29 Christopher James Lahey <clahey@helixcode.com> + + * gui/component-factory.c: Make calendar die when evolution quits. + +2000-06-30 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.c: Change of plans. We use an + icalcomponent from libical as our core representation so that we + can preserve extension fields and fields that we don't (yet) + support. CalComponent is just a wrapper with a nice API that + provides non-iterative, random access to the ical's fields. + (cal_component_destroy): Free the thing correctly. + (cal_component_get_vtype): Re-implement in terms of icalcomponent. + (cal_component_set_icalcomponent): New function to set the + CalComponent's data from an existing icalcomponent. + (cal_component_get_icalcomponent): New function. + (cal_component_set_new_vtype): New convenience function to create + an empty component. + (scan_icalcomponent): Core scanning function. + (scan_property): Another core scanning function. + (cal_component_get_uid): Use the property directly. + (cal_component_get_summary): Ditto. Handle the altrep parameter + as well. + (cal_component_set_summary): Ditto. Feel the pain, motherfucker. + It is ridiculous how much code this involves. + (scan_summary): Ditto. + +2000-06-29 Ettore Perazzoli <ettore@helixcode.com> + + * gui/component-factory.c (owner_set_cb): Get an + EvolutionShellClient instead of an Evolution_Shell to match the + changes in libeshell. + +2000-06-29 Federico Mena Quintero <federico@helixcode.com> + + * gui/Makefile.am: Do not link and include the pilot stuff for the + calendar component, just for the Pilot conduit. Commented out the + Pilot part so that Evolution can build. Sigh, we'll have to + modify gnome-pilot to use OAF. + +2000-06-29 Peter Williams <peterw@helixcode.com> + + * gui/Makefile.am (LINK_FLAGS): Make the calendar-pilot-sync + program conditional on HAVE_GNOME_PILOT, and add + GNOME_PILOT_CFLAGS, GNOME_PILOT_LIBS, and PISOCK_LIBS in the + appropriate places. + +2000-06-29 Seth Alves <alves@hungry.com> + + * pcs/cal.c (Cal_get_uid_by_pilot_id): + (Cal_update_pilot_id): + * pcs/cal-backend-imc.c (cal_backend_imc_update_pilot_id): + (cal_backend_imc_get_uid_by_pilot_id): + * pcs/cal-backend.c (cal_backend_get_uid_by_pilot_id): + (cal_backend_update_pilot_id): server code to service these: + + * gui/calendar-pilot-sync.c: updated to make use of cal-client. + also uses dirty bits on both sides to aid in syncing. + + * cal-client/cal-client.c (cal_client_get_uid_by_pilot_id): new + function -- ask the cal server to return uid given an object's + pilot id. + (cal_client_update_pilot_id): new function -- inform the + cal server of an objects pilot id and pilot dirty-flag. + +2000-06-28 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/cal-component.[ch]: New files for the new iCalendar + component object. Today's properties: basic component type, UID, + SUMMARY. + + * cal-util/Makefile.am: Added cal-component.[ch] to the list of + sources. + +2000-06-27 Michael Meeks <michael@helixcode.com> + + * pcs/Makefile.am (INCLUDES): use BONOBO_VFS_GNOME_CFLAGS. + +2000-06-26 Christopher James Lahey <clahey@helixcode.com> + + * gui/calendar-model.c: Added an #ifdefed value_to_string handler + assignment. + +2000-06-26 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-model.c (calendar_model_duplicate_value): + Implement. + (calendar_model_initialize_value): Implement. + (calendar_model_value_is_empty): Implement. + +2000-06-21 Damon Chaplin <damon@helixcode.com> + + * gui/e-day-view.c (e_day_view_reshape_long_event): set event before + using it! + (e_day_view_init): used new colors from tigert. + +2000-06-21 Christopher James Lahey <clahey@helixcode.com> + + * gui/e-day-view.c, gui/e-week-view.c: Remove the usage of the "x" + and "y" arguments. + +2000-06-21 Damon Chaplin <damon@helixcode.com> + + * gui/gnome-cal.c (gnome_calendar_direction): changed so it keeps the + selection range. It just moves it on one day/week etc. This makes + it very handy for the keyboard shortcut code. + + * gui/calendar-commands.c (calendar_control_activate): fixed bug + setting the radio button active. + + * gui/e-day-view.[hc]: added support for keyboard navigation and + selection of the time range. + +2000-06-20 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-model.c (calendar_model_set_value_at): Implemented. + (calendar_model_is_cell_editable): Implemented. + + * cal-client/cal-client.c (cal_client_update_object): Take in an + iCalObject instead of a stringified version. + + * gui/gnome-cal.c (gnome_calendar_update_object): Removed. + (gnome_calendar_remove_object): Removed. + (save_ical_object_cb): Use the CalClient function. + + * gui/e-day-view.c (e_day_view_on_delete_occurrence): Likewise. + (e_day_view_on_unrecur_appointment): Likewise. + (e_day_view_finish_long_event_resize): Likewise. + (e_day_view_finish_resize): Likewise. + (e_day_view_key_press): Likewise. + (e_day_view_on_editing_stopped): Likewise. + (e_day_view_on_top_canvas_drag_data_received): Likewise. + (e_day_view_on_main_canvas_drag_data_received): Likewise. + (e_day_view_on_delete_appointment): Likewise. + + * gui/e-week-view.c (e_week_view_on_editing_stopped): Likewise. + (e_week_view_key_press): Likewise. + (e_week_view_on_delete_occurrence): Likewise. + (e_week_view_on_unrecur_appointment): Likewise. + (e_week_view_on_delete_appointment): Likewise. + + * gui/gncal-todo.c (ok_button): Likewise. + (delete_todo): Likewise. + +2000-06-19 Damon Chaplin <damon@helixcode.com> + + * gui/event-editor-dialog.glade: tidied up dialog a bit, adding + space etc. + + * gui/e-week-view.c (e_week_view_reshape_events): removed debug msg. + +2000-06-18 Ettore Perazzoli <ettore@helixcode.com> + + * cal-util/Makefile.am (INCLUDES): Include from + `$(top_builddir)/libical/src/libical' too. [For the generated + libical `icalversion.h' header.] + * cal-client/Makefile.am (INCLUDES): Likewise. + +2000-06-18 Damon Chaplin <damon@helixcode.com> + + * gui/e-day-view.c (e_day_view_on_top_canvas_drag_data_received): + fixed a DnD bug. + +2000-06-17 Dan Winship <danw@helixcode.com> + + * cal-client/Makefile.am (INCLUDES): Fix to not depend on + installed ical.h + +2000-06-17 Damon Chaplin <damon@helixcode.com> + + * gui/e-week-view.c: added little buttons which are shown when there + are more events than will fit in a day. Clicking on the button takes + the user to the 1-Day view and shows the full day. + + * gui/e-day-view.c: + * gui/e-week-view.c: set the "use_ellipsis" arg to TRUE for the EText + items so we get tooltips automatically. Though we may want to use our + own code to show tooltips so we can show the tips when the mouse is + around the edges of the event box, and we may want to show the start + and end times of the event in full. + + * gui/calendar-commands.c (calendar_control_activate): + * gui/gnome-cal.h: added view_toolbar_buttons[] so we can access the + radio buttons in the code easily. We need this if we want to jump to + another view programmatically. + +2000-06-16 Damon Chaplin <damon@helixcode.com> + + * gui/jump.xpm: new icon for the EWeekView to jump to the day. + + * gui/Makefile.am (EXTRA_DIST): added jump.xpm + +2000-06-16 Damon Chaplin <damon@helixcode.com> + + * gui/calendar-model.c (calendar_model_class_init): #ifdef'ed out + references to functions which don't exist yet, so evolution still + compiles. + +2000-06-16 Damon Chaplin <damon@helixcode.com> + + * cal-util/test-recur.c: updated. + + * cal-util/cal-recur.[hc]: mostly finished, though it depends on the + iCalObject struct being updated to support more of iCalendar. + +2000-06-16 Damon Chaplin <damon@helixcode.com> + + * pcs/.cvsignore: added icalendar-test. + +2000-06-15 Damon Chaplin <damon@helixcode.com> + + * cal-util/Makefile.am (test_recur_LDADD): use libical.a + +2000-06-15 Dan Winship <danw@helixcode.com> + + * cal-util/Makefile.am (noinst_PROGRAMS): merge the two separate + noinst_PROGRAMS declarations into one so automake accepts it. + (INCLUDES): include libical src dir so we don't depend on having + ical.h already installed + +2000-06-14 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-model.c: GPtrArray cannot insert stuff in the + middle of the array (!), so use plain GArray everywhere. Sigh. + +2000-06-13 Federico Mena Quintero <federico@helixcode.com> + + * cal-client/cal-client.c (cal_client_get_object): Use vCalendar + again. + + * cal-util/calobj.c (ical_object_find_in_string): From Seth, make + it use vCalendar again. + +2000-06-13 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-model.c (obj_updated_cb): Juggle some eggs in + asynchronous fashion. Finished implementing. + (obj_removed_cb): Implemented. This one needs no juggling. + (calendar_model_set_cal_client): Only load the objects if we have + a client. + (calendar_model_destroy): Disconnect from the client's signals. + + * gui/Makefile.am (evolution_calendar_SOURCES): Added + calendar-model.[ch] to the list of sources. + + * pcs/cal-backend-imc.c (cal_backend_imc_get_n_objects): Doh, + return the computed value. + +2000-06-13 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-model.c (CalendarModelPrivate): Added the array of + objects and the hash table of UID->array index. + (calendar_model_row_count): Return the length directly from the + array instead of asking the Wombat. + (calendar_model_value_at): Implemented. + (calendar_model_new): Create an empty model. We provide a new + setter function now. + (calendar_model_construct): Removed function. + (calendar_model_set_cal_client): New function to set the calendar + client and object type at any time. This lets us reuse a calendar + model object. + + * cal-util/calobj.h (iCalObjectField): Just report whether the + object has alarms; not every single alarm. + +2000-06-13 Ettore Perazzoli <ettore@helixcode.com> + + * gui/Makefile.am (SHELL_OBJS): Removed. + (evolution_calendar_LDADD): Link with + `$(top_builddir)/shell/libeshell.a'. + +2000-06-09 Ettore Perazzoli <ettore@helixcode.com> + + * gui/component-factory.c (factory_fn): Pass NULL for the new args + @create_folder_fn and @remove_folder_fn. + (create_view): Updated to match the new + `EvolutionShellComponentCreateViewFn'. Return + `EVOLUTION_SHELL_COMPONENT_UNSUPPORTEDTYPE' if type is not + "calendar". + +2000-06-09 Federico Mena Quintero <federico@helixcode.com> + + * idl/evolution-calendar.idl (Cal): Added a get_n_objects() + method. + + * pcs/cal-backend.c (cal_backend_get_n_objects): New function. + + * pcs/cal-backend-imc.c (cal_backend_imc_get_n_objects): + Implemented. + + * pcs/cal.c (Cal_get_n_objects): Implemented. + + * cal-client/cal-client.c (cal_client_get_uids): Free the ev. + (cal_client_get_n_objects): Implemented. + + * cal-util/calobj.h (iCalObjectField): New enumeration to identify + the fields in an iCalObject. + +2000-06-08 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (event_editor_destroy): Free the private + structure. + +2000-06-08 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/calobj.c (ical_object_to_vobject): Allow for NULL + summaries. + +2000-06-07 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (toolbar): Added missing tooltips. We still + need icons, though. + +2000-06-07 Seth Alves <alves@hungry.com> + + * cal-util/calobj.c (ical_object_find_in_string): put this back in, + it's still used in cal-backend-imc.c:cal_backend_imc_update_object + + * cal-client/cal-client.c (cal_client_get_object): instead of + returning a text representation, decode the text and return an + iCalObject. Also added CalClientGetStatus which indicates + success or type of failure. + + * cal-util/calobj.c (ical_object_find_in_string): #ifed out + ical_object_find_in_string since it is unused now. + + * cal-client/client-test.c (list_uids): track get_object change + * gui/calendar-commands.c (calendar_iterate): same + * gui/e-day-view.c (e_day_view_update_event): same + * gui/e-week-view.c (e_week_view_update_event): same + * gui/print.c (print_day_details): same + (print_day_summary): same + (print_todo_details): same + * gui/gnome-cal.c (trigger_alarm_cb): same + * gui/gncal-todo.c (gncal_todo_update): same + +2000-06-06 Seth Alves <alves@hungry.com> + + * cal-util/icalendar.c, icalendar-save.c: fixed a bunch of problems + * cal-util/calobj.c (ical_object_find_in_string): use libical + instead of libversit + (ical_object_to_string): same + (dump_icalobject): prints the contents of an icalobject for debugging + + * gui/Makefile.am (LINK_FLAGS): link libical.a instead of libical.la + so we don't have to modify the build system of the released libical + * cal-client/Makefile.am (client_test_LDADD): same + * cal-util/Makefile.am (icalendar_test_LDADD): same + +2000-06-06 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/calobj.c (ical_object_destroy): Removed from the public + header; made static. Now everyone should use refcounting. + + * pcs/cal-backend-imc.c (free_ical_object): Use + ical_object_unref(). + (remove_object): Likewise. + +2000-06-02 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-commands.c (print): New function to call the print + engine. + (calendar_toolbar): Added the Print button. + (calendar_control_activate): Added the File/Print item. + + * gui/e-day-view.c (e_day_view_get_selected_time_range): Allow + start_time and end_time to be NULL. + + * gui/e-week-view.c (e_week_view_get_selected_time_range): + Likewise. + + * gui/print.c (range_selector_new): Show the range selector + widgets. Use the correct radio group for all of them! + (print_calendar): Do the dialog box here. We may want to split + this function later into smaller chunks. + +2000-06-05 Damon Chaplin <damon@helixcode.com> + + * gui/e-week-view-event-item.c (e_week_view_event_item_button_press): + allow the right button to popup the menu, even when the event is + being edited. + + * gui/e-week-view.c: + * gui/e-day-view.c: Set the keyboard focus to the EDayView/EWeekView + when the right button is clicked, so that any event being edited is + saved before any action (e.g. opening the Event Editor dialog) is + started. Note that this won't work if we switch to asynchronous + notification. + +2000-06-02 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (tb_save_and_close_cb): Implemented. + (toolbar): Added an icon for the Save and Close command. + (save_ical_object): Recompute the title of the window here. Maybe + it would be better to do it when we actually get the + "object_changed" signal from the CalClient. + (file_close_cb): Implemented. + +2000-06-02 Federico Mena Quintero <federico@helixcode.com> + + * gui/gnome-cal.c (save_ical_object_cb): Implemented. + (gnome_calendar_add_object): Removed function, since it was + identical to gnome_calendar_update_object(). Modified the rest + of the code to use only the latter. + (gnome_calendar_remove_object): Be more paranoid about the UID. + (gnome_calendar_update_object): Ditto. Also, renamed this + function from gnome_calendar_object_changed(), for consistency + with the lower-level CalClient interface. + + * gui/event-editor.c (event_editor_class_init): New + "save_ical_object" signal to ask that our parent store the + calendar object to the backend. + (save_ical_object): New function to save the calendar object, + actually if just emits the signal. + (file_save_cb): Implemented. + (dialog_to_ical_object): We want priv-> + alarm_program_run_program_entry (i.e. the entry inside the + GnomeFileEntry), not the file entry itself. + (dialog_to_ical_object): Only insert the recurrence ending date if + the event is recurrent! + +2000-06-02 Christopher James Lahey <clahey@helixcode.com> + + * gui/Makefile.am: Fixed EXTRA_DIST. + +2000-06-01 Federico Mena Quintero <federico@helixcode.com> + + * gui/gnome-cal.c (editor_closed_cb): Handler for the + "editor_closed" signal of the event editor; we just destroy it + then. + + * gui/event-editor.c (app_delete_event_cb): Callback used when the + dialog is closed. Release the iCalObject here instead of the + event editor's destroy handler, and emit the new "editor_closed" + signal. + +2000-06-01 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor-dialog.glade: Change of plans. The toplevel + GnomeApp is now generated with Glade instead of being created in + the program code. Otherwise we can't migrate the accelerators to + the new toplevel and they won't work. + + * gui/event-editor.[ch]: EventEditor now derives from GtkObject. + This lets us use the GnomeApp created by libglade and still have + signals and stuff. + + * gui/event-editor.c (create_menu): Tell the UI handler that the + menubar is the GnomeApp's existing one, not to create a new one. + (create_toolbar): Tell the UI handler to use the GnomeApp's + existing toolbar. + (event_editor_focus): New function to raise/focus an event editor. + + * gui/gnome-cal.c (gnome_calendar_edit_object): Use + event_editor_focus(). + +2000-06-01 Ettore Perazzoli <ettore@helixcode.com> + + * gui/calendar-commands.c (calendar_control_activate): Put the + toolbar into a frame to make it look like standard GNOME toolbars. + Also, set `GNOME_DOCK_ITEM_BEH_NEVER_VERTICAL' so that it does not + do evil things when its moved to the left or the right of the + window. + +2000-05-31 Federico Mena Quintero <federico@helixcode.com> + + * gui/gnome-cal.h (GnomeCalendar): Added a hash table to map + calendar objects to their respective event editors. + + * gui/gnome-cal.c (gnome_calendar_init): Create the + object_editor_hash. + (gnome_calendar_destroy): Free the object_editor_hash. + (gnome_calendar_edit_object): New function to centralize the + launching of event editors; if one already exists for a particular + calendar object, we just raise its window. + (edit): Use gnome_calendar_edit_object(). + + * gui/calendar-commands.c (display_objedit): Use + gnome_calendar_edit_object(). + (display_objedit_today): Likewise. + + * gui/e-day-view.c (e_day_view_on_new_appointment): Likewise. + (e_day_view_on_edit_appointment): Likewise. + + * gui/e-week-view.c (e_week_view_on_new_appointment): Likewise. + (e_week_view_on_edit_appointment): Likewise. + + * gui/event-editor.c (event_editor_new): Do not take in an + iCalObject; rather provide an event_editor_set_ical_object() + function. We need this because a single editor may be switched + between different calendar objects. Also, do not show the event + editor; leave it up to the client code. + (event_editor_construct): Likewise. + (clear_widgets): New function to clear the widgets to default + values. + (fill_widgets): New function to fill in the widgets from the + iCalObject. We don't do this in init_widgets() anymore. + (free_exception_clist_data): New function to free the exceptions + clist data. We were leaking the row data. + (init_widgets): Hook to the destroy signal of the exceptions + clist. + (event_editor_set_ical_object): New function. Now it also makes a + copy of the calendar object for the event editor; clients do not + need to copy it anymore. + (event_editor_destroy): Unref the UI handler as well. + (event_editor_class_init): New "ical_object_released" signal to + notify the parent that we are no longer editing the calendar + object. + (make_title_from_ico): Handle NULL objects. + + * gui/event-editor.h (EventEditor): Removed fields that are no + longer used. + +2000-05-31 Damon Chaplin <damon@helixcode.com> + + * cal-util/Makefile.am: added test-recur test program. + + * cal-util/test-recur.c: new file to test the recurrence code. + + * cal-util/.cvsignore: added test-recur. + + * cal-util/cal-recur.c: updated. + +2000-05-30 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor.c (event_editor_construct): Create the UI + handler after we have constructed the parent GnomeApp. + (main_menu): Menu template is now in place. + (toolbar): Tollbar template is now in place. + (create_toolbar): Turn off labels in the toolbar since it sucks; + it should support non-homogeneous buttons with horizontal icons + and text. + +2000-05-29 Federico Mena Quintero <federico@helixcode.com> + + * gui/gnome-cal.c (gnome_calendar_object_changed): Removed the + flags argument, since now we just proxy the calendar object to the + calendar client. + + * gui/event-editor.c (alarm_unit_get): Moved over from + event-editor-utils.c. + + * gui/event-editor-utils.[ch]: Removed files, since the two + functions that were left there (i.e. the ones not present in + e-dialog-widgets) can simply be moved to event-editor.c. + + * gui/Makefile.am (evolution_calendar_SOURCES): Removed + event-editor-utils.[ch] from the list of sources. + +2000-05-27 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor-utils.c: Moved many functions to + e-util/e-dialog-widgets.c. + +2000-05-25 Federico Mena Quintero <federico@helixcode.com> + + * gui/event-editor-dialog.glade: Put the main notebook directly + under a simple GtkWindow. We are going to pull out the notebook + and slap it into our custom-built GnomeApp, anwyays. + + * gui/event-editor.c: Made the EventEditor derive from GnomeApp. + Added a BonoboUIHandler for its menu and toolbar. + (make_title_from_ico): Create a nice title for the window. + (get_widgets): Fetch the Glade widgets here instead of all over + the place. + (event_editor_new): Temporary hack to show the dialog here, just + so that I can test it. + + * gui/Makefile.am (EXTRA_DIST): Added the Glade messages file. + +2000-05-25 Federico Mena Quintero <federico@helixcode.com> + + * gui/main.c (init_bonobo): Do not initialize libglade twice. + + * gui/component-factory.c (create_view): Set the folder_uri + property, otherwise the calendar will not get loaded into the + view. + +2000-05-25 Christopher James Lahey <clahey@helixcode.com> + + * gui/main.c: Make it so that warnings don't crash calendar. + +2000-05-25 Ettore Perazzoli <ettore@helixcode.com> + + * gui/evolution-calendar-control.c: Removed. + + * gui/main.c: New. + + * gui/control-factory.c: New. + * gui/control-factory.h: New. + + * gui/calendar-component-factory.c: New. + * gui/calendar-component-factory.c: New. + + * gui/evolution-calendar-control.c (calendar_control_factory): + Renamed from `calendar_factory'. + (calendar_control_factory_init): Renamed from + `calendar_factory_init'. + + * gui/Makefile.am: Link with the files from `$(builddir)/shell'. + + * gui/evolution-calendar.gnorba: New. + * gui/evolution-calendar.oafinfo: New. + +2000-05-24 Federico Mena Quintero <federico@helixcode.com> + + * gui/print.c (range_selector_new): New function to create the + custom range selector. + (print_dialog): New function to show the print dialog. + (print_calendar): Use the print dialog. + +2000-05-24 Christopher James Lahey <clahey@helixcode.com> + + * gui/Makefile.am: Added libepaned.a. + + * gui/gnome-cal.c: Switched from GtkPaned to EPaned. + +2000-05-22 Federico Mena Quintero <federico@helixcode.com> + + * gui/calendar-commands.c (calendar_get_events_in_range): Removed + function. + + * gui/mark.c (mark_month_item): Use + cal_client_get_events_in_range(). + + * gui/calendar-commands.c (show_year_view_clicked): Comment out, + since we don't have a year view. + + * gui/gnome-cal.c (setup_widgets): Removed the year view stuff. + (gnome_calendar_get_current_view_name): Likewise. + (gnome_calendar_update_view_times): Likewise. + (gnome_calendar_direction): Likewise. + (gnome_calendar_set_view): Likewise. + (gnome_calendar_update_all): Likewise. + (gnome_calendar_object_updated_cb): Likewise. + (gnome_calendar_object_removed_cb): Likewise. + (gnome_calendar_time_format_changed): Likewise. + (gnome_calendar_get_current_time_range): Likewise. + + * gui/gnome-cal.h (GnomeCalendar): Removed the year view stuff. + + * gui/Makefile.am (evolution_calendar_SOURCES): Added layout.[ch], + print.[ch]. Removed quick-view.[ch], year-view.[ch] since they + are no longer used. Removed all the old Pilot crap. + +2000-05-20 Damon Chaplin <damon@helixcode.com> + + * cal-util/cal-recur.[hc]: new files to implement iCalendar recurrence + rules. These are only part finished, but people may like to check that + the architecture seems OK. + +2000-05-17 Damon Chaplin <damon@helixcode.com> + + * gui/e-day-view.c (e_day_view_on_delete_occurrence): + * gui/e-week-view.c (e_week_view_on_delete_occurrence): use a copy of + the iCalObject so we detect the change in the "update_event" callback. + Maybe we should just update the view ourselves and then we wouldn't + need to detect any change in the callback. + + * cal-util/calobj.c (ical_object_reset_recurrence): new function to + get rid of any recurrence rules. Used when we 'unrecur' an event. + + * gui/e-day-view.c (e_day_view_key_press): don't add a new event if it + won't fit, or we end up adding a new event for each key press. + (e_day_view_update_event_label): don't update it if it doesn't have + an EText item (i.e. it isn't visible). + + * gui/e-day-view-time-item.c: allow selection of times using this + column. + +2000-05-19 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/timeutil.c (time_add_minutes): Fixed warning message. + (time_add_day): Likewise. + (time_add_month): Likewise. + (time_add_year): Likewise. + (time_from_day): Of all functions, *this* one had to have a bug. + Set the tm.tm_isdst to -1 to specify that we don't know whether + the time is in DST or not. This fixes *many* bugs upstream. + (time_week_begin): Likewise. We never noticed this since the week + functions are never used. + (time_week_end): Likewise. + +2000-05-17 Seth Alves <alves@hungry.com> + + * gui/event-editor.c: hooked up more widget signals to callbacks + to the gladified dialog acts more like the original one. + +2000-05-16 Seth Alves <alves@hungry.com> + + * gui/event-editor.c (recurrence_toggled): hook the radio buttons + to the pages of the notebook. + (append_exception): + (recurrence_exception_added): + (recurrence_exception_deleted): + (recurrence_exception_changed): code to deal with the recurrence + exception list. + +2000-05-15 Seth Alves <alves@hungry.com> + + * gui/event-editor.[ch]: gladeified replacement for eventedit.c + + * gui/event-editor-utils.[ch]: utilities used by event-editor.c + + * gui/event-editor-dialog.glade: glade file used by event-editor.c + +2000-05-14 Federico Mena Quintero <federico@helixcode.com> + + * gui/gnome-cal.c (display_notification): Use the alarm + notification dialog. + (display_notification_cb): New callback for the result of the + alarm notification dialog. + + * gui/dialogs/alarm-notify.glade: New file with the alarm + notification dialog. + + * gui/dialogs/alarm-notify-dialog.[ch]: New file. + + * gui/dialogs/Makefile.am: New file. + + * gui/Makefile.am (SUBDIRS): Added the dialogs directory. + +2000-05-13 Federico Mena Quintero <federico@helixcode.com> + + * gui/gnome-cal.c (trigger_alarm_cb): Better error checking, and + plug leaks of str_ico and ico. + + * gui/evolution-calendar-control.c (main): Initialize libglade. + +2000-05-13 Ettore Perazzoli <ettore@helixcode.com> + + * pcs/Makefile.am (INCLUDES): Add + `-I$(top_builddir)/libical/src/libical'. + +2000-05-12 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/calobj.c (generate): Use a (dtend - dtstart) offset to + compute the ending time of the occurrence. This takes care of + recurring events that span multiple days. Also, removed the DST + condition since it did not look right at all: if you have a daily + appointment at 18:00, it still should happen at 18:00 even during + daylight savings. + + * gui/gnome-cal.c (gnome_calendar_tag_calendar): Use the timeutil + functions instead of calculating the month's times by hand. Use + cal_obj_instance_list_free() instead of freeing the list by hand. + Clip the range we pass to mark_gtk_calendar_day(). + (mark_gtk_calendar_day): Fixed off-by-one error at the end of the + month by adding real day offsets. + +2000-05-11 Federico Mena Quintero <federico@helixcode.com> + + * gui/gnome-cal.c (add_alarms_for_object): New function to add + today's alarms for a single object. + (gnome_calendar_object_updated_cb): Update the object's alarms. + + * idl/evolution-calendar.idl (Cal): Added a + get_alarms_for_object() method. + + * pcs/cal.c (Cal_get_alarms_for_object): Implemented method. + + * pcs/cal-backend.c (cal_backend_get_alarms_for_object): New + function. + + * pcs/cal-backend-imc.c (cal_backend_imc_get_alarms_for_object): + Implemented. + + * cal-client/cal-client.c (cal_client_get_alarms_for_object): New + function. + +2000-05-11 Dan Winship <danw@helixcode.com> + + * gui/calendar-commands.c (calendar_control_activate): Now that we + depend on current gnome-libs we can make the toolbar detachable + again. + + * pcs/icalendar-save.c (timet_to_icaltime): remove unused timezone + variable to make this compile on BSD systems (where timezone is + the name of a function) + +2000-05-11 Federico Mena Quintero <federico@helixcode.com> + + * gui/gnome-cal.c (gnome_calendar_update_all): Removed unused + arguments. Load the initial alarms here. + (load_alarms): New function to load a day's worth of alarms. + (gnome_calendar_class_init): Eeeek! This was taking in an + incorrect argument type. + (gnome_calendar_init): Now the calendar keeps a hash table of + UIDs->queued alarms. Create the hash table here. + (gnome_calendar_destroy): Destroy the alarms hash table. + (gnome_calendar_object_updated_cb): Remove the alarms for the + object and regenerate them. + (gnome_calendar_object_removed_cb): Remove the alarms for the + object. + + * gui/alarm.c (alarm_add): Do not take in a CalendarAlarm, just + the trigger time, the callback and the closure data. Return an + opaque identifier for the alarm so that it can be removed by the + client code if needed. Use the queue_alarm() helper function. + (queue_alarm): Helper function to actually queue the alarm and set + up the itimer. Deal with a nonzero return value from + setitimer(). + (alarm_remove): New function to remove an alarm based on its ID. + (pop_alarm): New helper function; pops the first alarm of the + queue and resets the timer as appropriate. + (alarm_ready): Simplified a lot by using pop_alarm(). + + * idl/evolution-calendar.idl (Cal): Added get_alarms_in_range(). + + * pcs/cal.c (build_instance_seq): New function to build a CORBA + sequence from the internal list of instances. + (Cal_get_events_in_range): Use build_instance_seq(). + (Cal_get_alarms_in_range): Implemented new method. + + * pcs/cal-backend.c (cal_backend_get_alarms_in_range): New + function with the get_alarms_in_range() engine. + + * pcs/cal-backend-imc.c (cal_backend_imc_get_alarms_in_range): + Implemented the get_alarms_in_range() method. + + * cal-client/cal-client.c (cal_client_get_alarms_in_range): New + client-side function for getting the alarms. + (build_instance_list): New helper function to build the + CalObjInstance list from the CORBA sequence. + (cal_client_get_events_in_range): Use build_instance_list(). + + * gui/calendar-commands.h: #include <cal-util/calobj.h>. #include + "gnome-cal.h". + + * gui/e-week-view.c: #include "calendar-commands.h" instead of + main.h; the latter is an obsolete file and will be killed. + + * gui/evolution-calendar-control.c (main): Call init_bonobo() + before anything else. We need the GTK+ object system initialized. + + * gui/Makefile.am (evolution_calendar_SOURCES): Do not use main.h. + + * cal-util/cal-util.c (cal_alarm_instance_list_free): New function. + +2000-05-10 Matt Loper <matt@helixcode.com> + + * gui/calendar-commands.c (calendar_control_activate): Move + "about" menuitem to the help menu. + +2000-05-10 Christopher James Lahey <clahey@helixcode.com> + + * gui/Makefile.am: Added main.h. Combined the two EXTRA_DIST + sections. + +2000-05-09 Christopher James Lahey <clahey@helixcode.com> + + * pcs/cal-backend-imc.c: Set the format when creating a new + calendar. + +2000-05-09 Christopher James Lahey <clahey@helixcode.com> + + * pcs/cal-factory.c: Removed double free of method_string in + uri->method_string. + +2000-05-08 Ettore Perazzoli <ettore@helixcode.com> + + * pcs/cal.h: Include "calendar/pcs/evolution-calendar.h" instead + of "evolution-calendar.h". + + * pcs/cal-backend.h: Include "calendar/pcs/evolution-calendar.h" + instead of "evolution-calendar.h". + +2000-05-08 Seth Alves <alves@hungry.com> + + * gui/e-day-view.c (e_day_view_on_delete_appointment): call + e_day_view_stop_editing_event here to avoid a divide by zero + a bit further on. i'm not sure if this is the best fix for this. + +2000-05-08 Federico Mena Quintero <federico@helixcode.com> + + * pcs/cal-backend.h (CalBackendClass): CalBackendClass now is just + an interface for calendar backends; this is an abstract class. + Put in the vtable for the backend methods. + + * pcs/cal-backend.c (cal_backend_new): Removed function, since + CalBackend is not just an abstract class. + Removed implementation-specific functions and made public + functions call the virtual methods instead. + + * pcs/cal-backend-imc.[ch]: New files with the CalBackendIMC + implementation; this implements a backend for iCalendar and + vCalendar files. Moved the implementation-specific stuff from + cal-backend.[ch] to here. + + * pcs/cal-backend-imc.c (CalendarFormat): Moved enumeration to + here. Added a CAL_UNKNOWN value for when the backend is not + loaded yet. + (cal_backend_imc_init): Initialize priv->format as CAL_UNKNOWN. + (save_to_vcal): Use the same VCProdIdProp value as in + cal-util/calobj.c. Use "1.0" as the VCVersionProp as per the + vCalendar spec. + (ensure_uid): Return nothing, since the result value need not be + used anymore. + (add_object): Since we mark the calendar as dirty anyways, we do + not need to check the result value of ensure_uid() anymore. + (remove_object): Asssert that we know how to handle the object's + type. We do this in add_object() anyways. + + * pcs/Makefile.am (libpcs_a_SOURCES): Added cal-backend-imc.[ch]. + + * gui/gnome-cal.c: Replaced debugging printf()s with g_message() + so that we can see the line number where they occur. + + * gui/gnome-cal.c (gnome_calendar_load_cb): Sort of handle the + LOAD_METHOD_NOT_SUPPORTED result code, and added a default for the + switch. + + * cal-client/cal-listener.h (CalListenerLoadStatus): Removed + enumeration; it is stupid to translate all values for the + CalClient when it is going to translate them again. + (CalListenerClass::cal_loaded): This signal now passes the + LoadStatus directly from the CORBA side. + + * cal-client/cal-listener.c (Listener_cal_loaded): Do not + translate the status value. + + * cal-client/cal-client.h (CalClientLoadStatus): Added the + CAL_CLIENT_LOAD_METHOD_NOT_SUPPORTED error code. + + * cal-client/cal-client.c (cal_loaded_cb): Translate the CORBA + version of the LoadStatus result code. + + * pcs/cal-factory.c (CalFactoryPrivate): New methods field for the + hash table from method strings to the GtkTypes for backend class + types. + (cal_factory_init): Create the priv->methods hash table. + (cal_factory_destroy): Free the priv->methods hash table. + (cal_factory_register_method): New function to register a backend + class for a particular URI method. + (launch_backend_for_uri): New function to launch a backend for a + particular URI's method. + (load_backend): Use launch_backend_for_uri(). Move the error + notification code from load_fn() to here. + (create_backend): Use launch_backend_for_uri(). Move the error + notification code form create_fn() to here; it is #ifdefed out + since currently cal_backend_create() does not have any error + reporting capabilities. + + * idl/evolution-calendar.idl (Listener::LoadStatus): Added a + PROTOCOL_NOT_SUPPORTED error code. + + * pcs/cal-factory.c (cal_factory_load cal_factory_create): Removed + functions, since they were supposed to be internal only. + (CalFactory_load): Call queue_load_create_job() directly. + (CalFactory_create): Likewise. + +2000-05-08 Damon Chaplin <damon@helixcode.com> + + * gui/e-week-view.c (e_week_view_remove_event_cb): + * gui/e-day-view.c (e_day_view_remove_event_cb): don't set the ico->uid + to NULL or we won't find any other occurrences of the event. Set the + editing_event_day/num to -1 instead. + + * gui/e-week-view-event-item.c (e_week_view_event_item_draw): fixed the + positioning of the icons for long events. + + * cal-util/calobj.c (ical_object_normalize_summary): forgot to + terminate the string. + +2000-05-07 Damon Chaplin <damon@helixcode.com> + + * gui/e-day-view.c (e_day_view_on_main_canvas_drag_data_received): + (e_day_view_on_top_canvas_drag_data_received): show the EText item, + just in case it hasn't moved, otherwise it won't appear. + + * gui/e-day-view.h (E_DAY_VIEW_BAR_WIDTH): increased from 6 to 8 to + make it easier to drag an event. Also increased E_DAY_VIEW_GAP_WIDTH + since it must be >= the BAR_WIDTH. + +2000-05-07 Matt Loper <matt@helixcode.com> + + * gui/evolution-calendar-control.c (PROPERTY_CALENDAR_URI): + Changed to "folder_uri" from "calendar_uri". + (set_prop): The uri given to us is a directory, so we append a + filename onto the end before we use it. + +2000-05-06 Damon Chaplin <damon@helixcode.com> + + * cal-util/timeutil.c (time_day_begin): + (time_day_end): changed these so they just do a simple localtime(), + update the struct tm, then do a mktime(). I don't know why it used to + look at the tm_isdst flags etc. From a little test program I wrote + which steps through testing every hour for a year it wasn't working + correctly, and the new code does. + (time_add_day): also got rid of the stuff that looked at tm_isdst here. + My test program now works better. + +2000-05-06 Chris Toshok <toshok@helixcode.com> + * gui/.cvsignore: ignore evolution-calendar.pure + + * gui/Makefile.am: add support for building evolution-calendar.pure + +2000-05-06 Damon Chaplin <damon@helixcode.com> + + * gui/e-day-view.c: + * gui/e-week-view.c: finish editing event when user hits Return key. + (e_week_view_on_text_item_event): stop event signals after doing any + other calls, since otherwise it will also stop any other resulting + event signals. + + * gui/e-week-view-event-item.c (e_week_view_event_item_draw): don't + draw the start/end times while editing. + + * gui/eventedit.c: changed the Summary field to a GtkEntry, since we + now only want a single line of text. + + * cal-util/calobj.c (ical_object_normalize_summary): new function to + convert the summary field to a single line of text, by converting any + sequence of CR & LF characters to a single space. + (ical_object_create_from_vobject): call the above function. I think + all functions that load iCalObjects go through this. + (ical_new): called it here as well just in case. + +2000-05-06 Damon Chaplin <damon@helixcode.com> + + * gui/week-view.[hc]: removed. + +2000-05-06 Damon Chaplin <damon@helixcode.com> + + * gui/gncal-day-panel.[hc]: + * gui/gncal-day-view.[hc]: + * gui/gncal-full-day.[hc]: + * gui/gncal-week-view.[hc]: + * gui/layout.[hc]: + * gui/view-utils.[hc]: removed old calendar view files. + +2000-05-06 Damon Chaplin <damon@helixcode.com> + + * cal-util/calobj.[hc]: added guint ref_count to iCalObject struct, + and ical_object_ref/unref() functions. I've updated all the gui/ + stuff to use ref_counts but I haven't touched the pcs/ stuff. Maybe + just using ical_object_destroy() is OK there. + + * gui/gncal-todo.c: + * gui/calendar-commands.c: + * gui/eventedit.c: + * gui/e-week-view.c: + * gui/e-day-view.c: use refcounting for iCalObjects. + + * gui/e-day-view-main-item.c: + * gui/e-day-view-top-item.c: + * gui/e-day-view.c: try not to ever draw outside the event, even when + the event is very small. + +2000-05-05 Damon Chaplin <damon@helixcode.com> + + * gui/e-day-view.c: don't allow recurring events to be resized or + dragged, and don't show the resize/drag cursors. Actually it may be + better to let the user do the resize/drag and then ask them what they + want to do - change the single occurrence or the entire series. + + * gui/e-day-view-time-item.c (e_day_view_time_item_show_popup_menu): + use e_auto_kill_popup_menu_on_hide() to destroy the popup menu. + + * gui/popup-menu.c: include e-gui-utils.h + +2000-05-04 Damon Chaplin <damon@helixcode.com> + + * gui/e-day-view.c (e_day_view_foreach_event_with_uid): for the long + events pass E_DAY_VIEW_LONG_EVENT as the day. Fixes SEGV. + + * gui/calendar-commands.c: when we switch views, grab the focus. + + * gui/gnome-cal.c (gnome_calendar_tag_calendar): + (gnome_calendar_mark_gtk_calendar_day): changed this so it uses + cal_client_get_events_in_range(), and doesn't load any objects. + Also just return if it isn't visible. + + * gui/calendar-commands.c (calendar_get_events_in_range): call + g_list_sort() to sort the list rather than g_list_insert_sorted() for + each element. It is much more efficient. + Also changed it so that the co->ev_start/end fields are copied from + the CalObjInstance rather than the parameters to the function + (that is right, isn't it?) + Also freed the list elements, and finally the list. + (calendar_iterate): changed this to use cal_client_get_events_in_range + since that is more efficient than getting all the uids and then loading + and parsing all the events. + + * pcs/cal-backend.c (save): output the '... saved' message before + freeing the string! + + * gui/gncal-todo.c (gncal_todo_update): + * gui/e-week-view.c (e_week_view_update_event): + * gui/e-day-view.c (e_day_view_update_event): + * gui/calendar-commands.c (calendar_get_events_in_range): + (calendar_iterate): free obj_string after it is parsed. + +2000-05-02 Damon Chaplin <damon@helixcode.com> + + * gui/calendar-commands.c (calendar_control_activate): set the active + radio button here. Oops - it wasn't a Bonobo problem after all. + + * gui/popup-menu.c (popup_menu): added call to + e_auto_kill_popup_menu_on_hide() to destroy the menu. + + * gui/e-week-view.c (e_week_view_show_popup_menu): + * gui/e-day-view.c (e_day_view_on_event_right_click): ico->user_data + isn't useful any more, since the event editor keeps its own iCalObject. + So for now we make the menu commands available even when the event is + being edited in the event editor. + Also corrected misspellings of 'occurance' -> 'occurrence'. + + * gui/eventedit.c (event_editor_destroy): destroy the iCalObject. + The event editor now uses its own independent iCalObject. + + * gui/e-week-view.c (e_week_view_on_unrecur_appointment): + * gui/e-day-view.c (e_day_view_on_unrecur_appointment): create a new + uid for the new single instance. I'm not sure what we should do about + the creation/last modification times of the objects. + + * gui/e-week-view.c (e_week_view_on_edit_appointment): + * gui/e-day-view.c (e_day_view_on_edit_appointment): duplicate the + iCalObject before passing it to the event editor, since it will change + the fields. If we don't duplicate it we won't know what has changed + when we get the "update_event" callback. + + * gui/e-week-view.c (e_week_view_key_press): + * gui/e-day-view.c (e_day_view_key_press): set the created and last_mod + times of the new iCalObject. We may want to set the default alarm as + well. + + * cal-util/calobj.c (ical_gen_uid): made this function public so we + can generate new uids if necessary. + +2000-05-01 Damon Chaplin <damon@helixcode.com> + + * gui/gnome-cal.[hc] (gnome_calendar_get_current_time_range): new + function to get the currently seleted time range form the current view. + + * gui/calendar-commands.c (display_objedit): use the above function + to get the time for the new appointment. + + * gui/e-week-view.c: + * gui/e-day-view.c: use a shallow copy of the ico when we update the + times (when resizing/dragging). Otherwise we won't detect that the + time has changed in the "update_event" callback. + + Also added functions to get the currently selected time range. + +2000-04-30 Seth Alves <alves@hungry.com> + + * pcs/icalendar-save.c (icalcomponent_create_from_ical_object): set + attendee and contact address correctly. + + * pcs/cal-backend.c (icalendar_calendar_load): init priv->object_hash + when loading. + (cal_get_type_from_filename): if file extension is .ical, consider + the file an ical file. + +2000-05-01 Damon Chaplin <damon@helixcode.com> + + * cal-util/calobj.c (ical_object_compare_dates): new function to see + if the event dates have changed (including any recurrence rules). + It is used for optimization when we get the "object_changed" signal. + We have to do far less work if the dates are unchanged. + + * gui/e-week-view.c: + * gui/e-day-view.c: only draw the selection when we have the keyboard + focus, since the user expects to be able to type in a new event when + the selection is shown. Also keep the selection when we lose focus, + but just don't show it. + + Also quite a few changes to cope with the new client/server + architecture. + + * gui/e-day-view-top-item.c (e_day_view_top_item_draw): + * gui/e-day-view-main-item.c (e_day_view_main_item_draw): + * gui/e-week-view-main-item.c (e_week_view_main_item_draw_day): + only draw the selection if the widget has the keyboard focus. + + * gui/gnome-cal.c (mark_gtk_calendar_day): fixed so it works with + events longer than one day. And changed the code for updating events + in the new views. + +2000-04-27 Ettore Perazzoli <ettore@helixcode.com> + + * gui/evolution-calendar-control.c + (init_bonobo): OAFized. + + * gui/main.c (main): Initialize with OAF if `USING_OAF'. + + * gui/evolution-calendar-control.c: New #define + `CONTROL_FACTORY_ID', varying according to whether we are + `USING_OAF'. + (calendar_factory_init): Use `CONTROL_FACTORY_ID'. + + * gui/Makefile.am: Updated for OAF. + + * pcs/cal-factory.h: Explicitly #include + "calendar/pcs/evolution-calendar.h" instead of just + "evolution-calendar.h". + + * cal-client/cal-client.c (cal_client_construct) [USING_OAF]: Use + OAF. + + * cal-client/client-test.c (init_corba): New function, implemented + differently depending on `USING_OAF'. + +2000-04-27 <alves@hungry.com> + + * pcs/cal-backend.c (cal_backend_load): fix memory leak + (save_to_vcal): same + (save): same + (cal_backend_load): same + +2000-04-26 Christopher James Lahey <clahey@helixcode.com> + + * cal-util/.cvsignore: Replaced libcal-util.la with *.la + + * pcs/.cvsignore: Added *.la and *.lo. + +2000-04-25 Federico Mena Quintero <federico@helixcode.com> + + * pcs/cal-factory.c (backend_last_client_gone_cb): Renamed from + backend_destroy_cb. Now we use it for the "last_client_gone" + signal from the backend. Also, unref the backend to destroy it. + (add_backend): Connect to the "last_client_gone" signal of the + backend. + (cal_factory_get_n_backends): New function to query the number of + running backends. + + * pcs/cal-backend.c (cal_backend_class_init): Register the new + "last_client_gone" signal. It is emitted when the last Cal client + goes away. It is used to notify the factory when a backend may be + safely destroyed. + (cal_destroy_cb): Emit the "last_client_gone" signal when the last + client disconnects from the backend. + +2000-04-25 Seth Alves <alves@hungry.com> + + * gui/e-day-view.c (e_day_view_find_event_from_ico): compare + iCalObjects by their UIDs instead of by their pointers. + + * pcs/cal-backend.c (cal_backend_destroy): don't save on destroy. + +2000-04-25 Ettore Perazzoli <ettore@helixcode.com> + + * cal-client/Makefile.am: Add `$(datadir)/idl'. + + * pcs/Makefile.am (idl_flags): Add `$(datadir)/idl'. + (INCLUDES): Use `$(BONOBO_GNOME_CFLAGS)'. + +2000-04-25 Seth Alves <alves@hungry.com> + + * gui/gnome-cal.c (gnome_calendar_destroy): hook for widget + destroy -- used to unref the CalClient so wombat knows we are gone. + (gnome_calendar_class_init): added a class init for this widget. + + * gui/e-day-view.c (e_day_view_update_event): allow for null ico + + * gui/e-week-view.c (e_week_view_update_event): allow for null ico + +2000-04-24 Federico Mena Quintero <federico@helixcode.com> + + * cal-client/client-test.c (main): The path to the test calendar + changed when we moved stuff around. Users will have to tweak this + for their CVS setup, anyways. + (create_client): Create or load the calendar as appropriate. + (client_destroy_cb): Exit the main loop if both clients are gone. + (main): Connect to the "destroy" signal of the clients so that we + can terminate the test program. + +2000-04-24 Seth Alves <alves@hungry.com> + + * pcs/icalendar.c (parse_person): allow for null CN + (parse_person): allow for null sent_by + + * pcs/Makefile.am: build icalendar-test + + * pcs/icalendar-test.c: a test which loads an ical file and + converts it to our internal format, and then saves it back out. + +2000-04-24 Damon Chaplin <damon@helixcode.com> + + * gui/Makefile.am: added new source files and pixmaps, and removed + old source files, which can be deleted. + + * gui/e-week-view-titles-item.[hc]: + * gui/e-week-view-main-item.[hc]: + * gui/e-week-view-event-item.[hc]: + * gui/e-week-view.[hc]: new files implementing the week/month views. + + * gui/yearview.xpm: + * gui/monthview.xpm: + * gui/weekview.xpm: + * gui/workweekview.xpm: + * gui/dayview.xpm: new pixmaps for the toolbar buttons. These aren't + intended to be the final pixmaps. + + * gui/calendar-commands.c: added radio buttons to the toolbar to + switch between the calendar views, and moved the am_pm_flag here so we + can get rid of view-utils.c. + + * gui/gnome-cal.[hc]: made it a subclass of GtkVBox, rearranged the + widgets into 2 notebooks, and added the selection_start_time and + selection_end_time fields. + + * gui/goto.c: updated to use new selection time range. + + * gui/quick-view.c: added '#include <gtk/gtkwindow.h>' so it compiles. + + * gui/e-day-view.[hc]: changed the interface to support the new + selection time range, got rid of a few debugging messages and changed + a few bits. + +2000-04-21 Seth Alves <alves@hungry.com> + + * pcs/icalendar-save.c: start on code to do the opposite of + icalendar.c (convert from iCalObjects to libical's icalcomponents). + + * gui/calendar-commands.c (calendar_control_activate): moved + "About Calendar" into the View menu so it shows up. + +2000-04-20 Seth Alves <alves@hungry.com> + + * gui/gnome-cal.c (gnome_calendar_changed_cb): new function: callback + for listener's object updated signal. + (gnome_calendar_object_removed_cb): new function: callback for + listener's object removed signal. + (gnome_calendar_new): hook up listener's "obj_updated" and + "obj_removed" signals so if evolution is running twice, + they will both see changes right away. + (gnome_calendar_object_changed): don't call update_all, since + it will be called by the listener. + (gnome_calendar_remove_object): don't call update_all + (gnome_calendar_add_object): don't call update_all + + * gui/gncal-full-day.c (child_realize): create fullday's gcs + even if pixmap_bell has already been created. this was + causing crashes if the calendar was run twice. + +2000-04-19 Seth Alves <alves@hungry.com> + + * gui/eventedit.c (ee_rp_init_rule): changed the order around + a bit to avoid a Gtk-CRITICAL crash + + * gui/gncal-todo.c (gncal_todo_update): fixed code to populate + the todo clist + + * cal-client/cal-client.c (cal_client_get_uids): don't check + type against CALOBJ_TYPE_ANY since it will always match. + (cal_client_get_uids): same (re: CALOBJ_TYPE_ANY) + + * pcs/cal-backend.c (build_uids_list): same (re: CALOBJ_TYPE_ANY) + + * pcs/cal.c (Cal_get_uids): same (re: CALOBJ_TYPE_ANY) + + * pcs/cal-backend.c (remove_object): don't call save from here + because in all cases the caller of remove_object calls save + + * gui/calendar-commands.c (calendar_set_uri): calls gnome_calendar_open + instead of checking on disk and calling load or create. + + * gui/gnome-cal.c (gnome_calendar_object_changed): fixed to use + cal_client_update_object -- editing and dragging events works again + (gnome_calendar_open): collapsed gnome_calendar_load and + gnome_calendar_create into this function. added new type + GnomeCalendarOpenMode which has the value CALENDAR_OPEN or + CALENDAR_OPEN_OR_CREATE. + + * gui/evolution-calendar-control.c (calendar_properties_init): create + a property bag for this control + (set_prop): callback for property sets + (get_prop): callback for proprety gets + + * gui/calendar-commands.c (calendar_set_uri): new function, + called when the "calendar_uri" property is set on the calendar- + control's property bag. + +2000-04-18 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/Makefile.am (INCLUDES): Fix include path. + +2000-04-16 Federico Mena Quintero <federico@helixcode.com> + + * pcs/cal-factory.h (CalFactoryClass): We have a new + "last_calendar_gone" signal that Wombat can use to terminate + itself properly. + + * pcs/cal-factory.c (cal_factory_class_init): Register the + "last_calendar_gone" signal. + (backend_destroy_cb): Emit the "last_calendar_gone" signal instead + of killing the factory. + + * pcs/Makefile.am: Added $(CORBA_GENERATED) to BUILT_SOURCES. + (INCLUDES): Make the log domain be "wombat-pcs". + +2000-04-17 Seth Alves <alves@hungry.com> + + * pcs/cal-backend.c (add_object): removed implicit save, since + we don't want to save as we load from disk. + (cal_backend_update_object): added a call to save, since it + isn't done by add_object now. + +2000-04-16 Federico Mena Quintero <federico@helixcode.com> + + * cal-util/Makefile.am: Renamed library from libcalutil to + libcal-util, to be consistent with libcal-client. Install header + files in $(includedir)/evolution/cal-util. + (INCLUDES): Add "cal-util" log domain for glib. + (libcal_clientincludedir): The header files are now installed in + $(includedir)/evolution/cal-client. + + * cal-util/cal-util.h: Fix includes. + + * cal-client/client-test.c: Fix includes. + + * pcs/Makefile.am: Create libpcs.a, not a shared library, because + it is for internal use by Wombat only. The header files should + not be installed, either. Removed all the old Tlacuache stuff. + + * gui/Makefile.am (EXTRA_DIST): We no longer distribute + gncal.desktop. + (evolution_calendar_INCLUDES): Add "calendar-gui" for the glib log + domain. + + * gui/*.[ch]: Fix cal-util and cal-client includes. + + * pcs/Makefile.am (INCLUDES): Added "pcs" log domain for glib. + + * pcs/*.[ch]: Fix cal-util includes. + +2000-04-11 Chris Toshok <toshok@helixcode.com> + + * pcs/icalendar.c (icaltime_to_timet): use HAVE_TIMEZONE to switch + between linux's timezone variable and *bsd's method of getting the + gmt offset. + +2000-04-10 Seth Alves <alves@hungry.com> + + * pcs/cal-backend.c (save_to_vcal): create and save an actual + vcalendar instead of a list of vcal objects. + +2000-04-10 Damon Chaplin <damon@helixcode.com> + + * gui/Makefile.am (INCLUDES): moved srcdir directories to the top so + we search headers in the evolution tree before installed headers. + (Otherwise when you do 'make install' lots of files in gui/ get + rebuilt, since they depend on the installed cal-client.h which has just + been updated.) + +2000-04-09 Seth Alves <alves@hungry.com> + + * gui/gnome-cal.c (gnome_calendar_load): catch cal_loaded signal + on the cal client. + (gnome_calendar_load_cb): callback for cal_loaded signal. moved + gnome_calendar_update_all from gnome_calendar_load to here. + + * gui/calendar-commands.c: minor cleanups + + * pcs/cal-backend.c (save_to_vcal): copied code from gnome-pim + to write vcal to a file + (save): filled it with more gnome-pim code + (add_object): call save () after changing + (remove_object): same + (cal_backend_create): same + (cal_backend_remove_object): same + +2000-04-08 Christopher James Lahey <clahey@helixcode.com> + + * gui/Makefile.am: Removed linking with libetable and libeminicard + since they weren't being used. + +2000-04-08 Seth Alves <alves@hungry.com> + + * gui/gnome-cal.c (gnome_calendar_create): new function: + friendly wrapper for cal_client_create_calendar + + * gui/calendar-commands.c (new_calendar): call gnome_calendar_create + if no filename is provided + + * gui/prop.c (properties): calendar is a frame + + * gui/calendar-commands.c (calendar_control_activate): sort out the + menus a bit, more of them show up now. + + * gui/Makefile.am: don't build library or test, just the bonobo control + + * gui/gncal-todo.c (simple_todo_editor): calendar is a frame instead + of a window, now. + + * gui/gnome-cal.c (gnome_calendar_new): same + + * gui/goto.c (goto_dialog): same + +2000-04-06 Seth Alves <alves@hungry.com> + + * gui/calendar-commands.c (calendar_control_activate): removed + uih from the argument list, added cal. use cal as user_data + in callbacks rather than the control. + (calendar_control_deactivate): removed uih from argument list + +2000-04-05 Seth Alves <alves@hungry.com> + + * gui/calendar-commands.c (setup_menu): removed + (setup_appbar): removed + (calendar_control_activate): new function -- does the work + that setup_appbar and setup_menu used to do. + (calendar_control_deactivate): undoes what calendar_control_activate + does by removing the toolbar items and menu items. + + * gui/Makefile.am: build test-calendar-widget and evolution-calendar, + common stuff is in a library + + * gui/gnome-cal.c (gnome_calendar_get_type): made the calendar widget + based on a gtk_frame rather than a gnome_app + + * gui/calendar-commands.c: split out some of main.c + + * gui/evolution-calendar-control.c: bonobo bung so evolution + can use the calendar widget + +2000-04-01 Matt Loper <matt@helixcode.com> + + * pcs/.cvsignore: Added *.lo. + +2000-03-30 Seth Alves <alves@hungry.com> + + * gui/main.c (calendar_get_events_in_range): + cal_client_get_events_in_range returns a list of CalObjInstance *, not + a list of (char *) uid. + + * Makefile.am (SUBDIRS): readded the gui directory + + * gui/main.c: temporarily added alarm_defaults back in, + since the calendar doesn't link without it + +2000-03-29 Matt Loper <matt@helixcode.com> + + * Makefile.am: remove the gui directory, which doesn't compile. + +2000-03-28 Matt Loper <matt@helixcode.com> + + * pcs/Makefile.am: create a libpcs.la library, for use in the + wombat. + +2000-03-28 Seth Alves <alves@hungry.com> + + * gui/Makefile.am (LINK_FLAGS): added libeutil.la and libetext.a + + * gui/main.c (calendar_iterate): switch from string_to_ical_object to + ical_object_find_in_string + (calendar_get_events_in_range): same + (session_save_state): commented out references + to gcal->client->filename + +2000-03-27 Federico Mena Quintero <federico@helixcode.com> + + * pcs/cal-backend.c (cal_backend_get_object): Use + ical_object_to_string(). + + * cal-util/calobj.c (ical_object_to_string): Moved over from + pcs/cal-backend.c (was string_from_ical_object). + (get_calendar_base_vobject): Likewise, moved over from + pcs/cal-backend.c. + + * cal-util/cal-util.c: Removed string_to_ical_object(); the + correct function is in calobj.[ch], called + ical_object_find_in_string(). Removed ical_object_to_string, + since we now implement it in calobj.c. + + * cal-util/calobj.c: Removed ical_object_new_from_string(); see + above. + + * idl/evolution-calendar.idl (CalObjInstance): Calendar object + instances now contain only the UID for the object, not the whole + string representation of the object. This allows clients to + implement caching of objects if they wish. + + * pcs/cal.c (Cal_get_events_in_range): Likewise. + + * pcs/cal-backend.c (build_event_list): Likewise. + + * cal-client/cal-client.c (cal_client_get_events_in_range): + Likewise. + + * cal-util/cal-util.h (CalObjInstance): Likewise. + + * cal-util/cal-util.c (cal_obj_instance_list_free): Likewise. + (cal_obj_uid_list_free): Assert that the UIDs in the list are not + NULL. + + * pcs/tlacuache.gnorba (repo_id): The calendar factory also + supports the Unknown interface. + +2000-03-17 Federico Mena Quintero <federico@helixcode.com> + + * gui/e-day-view.c: Fix includes. + (e_day_view_on_delete_occurance): Do not call save_default_calendar(). + (e_day_view_on_delete_appointment): Likewise. + (e_day_view_on_unrecur_appointment): Likewise. + (e_day_view_finish_long_event_resize): Likewise. + (e_day_view_finish_resize): Likewise. + (e_day_view_key_press): Likewise. + (e_day_view_on_editing_stopped): Likewise. + (e_day_view_on_top_canvas_drag_data_received): Likewise. + (e_day_view_on_main_canvas_drag_data_received): Likewise. + +2000-03-13 Damon Chaplin <damon@helixcode.com> + + * gui/e-day-view*.[hc]: new files for the Day/Work-Week views. + +2000-03-12 Federico Mena Quintero <federico@helixcode.com> + + * gui/main.c (gnome_calendar_locate): Removed function now that it + is no CORBA server in the GUI. + (save_default_calendar): Removed function. Now the personal + calendar server will take care of saving modified calendars when + appropriate. + (close_cmd): Do not call unregister_calendar_services(). + + * gui/eventedit.c (ee_ok): Do not save the calendar. + + * gui/gncal-day-panel.c (day_view_range_activated): Likewise. + + * gui/gncal-todo.c (ok_button): Likewise. + (delete_todo): Likewise. + + * gui/gncal-full-day.c (delete_occurance): Likewise. + (delete_appointment): Likewise. + (unrecur_appointment): Likewise. + (child_focus_out): Likewise. + (update_from_drag_info): Likewise. + + * gui/gnome-cal.c (gnome_calendar_new): Removed obsolete call to + create the CORBA server. + + * gui/gnome-cal.h (GnomeCalendar): Renamed `calc' field to + `client'. + + * cal-client/cal-client.h (CalClient): Removed filename and + corba_server fields. + +2000-03-10 Federico Mena Quintero <federico@helixcode.com> + + * gui/main.c (main): Do not pass the INIT_SERVER flag to + gnome_CORBA_init_with_popt_table(). Check for exceptions + properly. + (main): Initialize Bonobo. + (main): Call process_dates() to parse the dates from the command + line before we dump the events or the TODOs. + (main): Use bonobo_main() instead of gtk_main(). + + * cal-util/calobj.c (ical_new): Initialize the alarm types here. + Do not call default_alarm() anymore, since that is a GUI issue. + (default_alarm): Removed function. + (alarm_defaults): Removed defaults data. + + * pcs/tlacuache.c (calendar_notify): Removed stubs for + alarm_defaults, calendar_notify(), debug_alarms. + +2000-03-09 Federico Mena Quintero <federico@helixcode.com> + + * gui/Makefile.am: Removed the corba-cal stuff. Commented out the + Pilot conduit stuff for now. + + * gui/calendar.c: Random #ifdefs to make it build, although this + file is going away. + + * gui/Makefile.am: Removed referenes to calobj.[ch] and timeutil.[ch]. + + * gui/calendar-conduit.c: Fixup includes. + + * gui/calendar-conduit.h: Fixup includes. + +2000-03-09 Seth Alves <alves@hungry.com> + + * gui/gnome-cal.h: replaced "Calendar *cal" with "CalClient *calc" + in the GnomeCalendar struct. + + * gui/*.c: tracked change from Calendar * to CalClient + + * gui/main.c: moved alarm_defaults from here to cal-util/calobj.c + (calendar_get_events_in_range): pulled this out of calendar.c and + fixed it up to use cal-client stuff. i'm not sure where to put it yet. + + * gui/main.c (calendar_iterate): pulled this one out of calendar.c also + +2000-03-07 Federico Mena Quintero <federico@helixcode.com> + + * cal-client/Makefile.am: Removed cal-client-alarm.[ch] from the + list of sources. This was a miscommunication on our part. + +2000-03-05 Seth Alves <alves@hungry.com> + + * cal-client/cal-client-alarm.c: stubs for client side + access to alarm structures. this will probably change, + since i don't know what i'm doing. + + * cal-util/alarm-enums.h: enums for alarms needed by + both the client and the server + + * remaining source files in calendar/... have been moved + to calendar/gui. + + * gui/alarm.c: start to decouple the view from the model + in the alarm editing code + +2000-03-03 Seth Alves <alves@hungry.com> + + * cal-util/Makefile.am: new file -- things shared between + the client and server go in this directory + + * calobj.c calobj.h icalendar.c icalendar.h + timeutil.c timeutil.h cal-util.c cal-util.h where moved + backend stuff went into pcs. shared stuff went into + cal-util. + +2000-03-02 Federico Mena Quintero <federico@helixcode.com> + + At this point the calendar client and personal calendar server + files were moved to the idl/, cal-client/, and pcs/ directories. + + * idl/Makefile.am: New file. + + * cal-client/Makefile.am: New file. Moved the libcal-client stuff + from calendar/Makefile.am to here. + + * pcs/Makefile.am: New file. Moved the tlacuache stuff from + calendar/Makefile.am to here. + + * Makefile.am (SUBDIRS): Added the idl and cal-client directories. + + * calendar.h: Removed the references to cal-backend.h and its + stuff. This file is going away soon! + + * icalendar.c: #include <config.h>. Also, we don't need to + include cal-backend.h or gnome.h. + + * icalendar.h: Protect from multiple inclusions. + +2000-03-01 Federico Mena Quintero <federico@helixcode.com> + + * Makefile.am: Use the gnome-config flags for orbit-idl. + Create a libcal-client library with the calendar client object. + +2000-02-29 Federico Mena Quintero <federico@helixcode.com> + + * Makefile.am: Removed stale rule for the conduit. + +2000-02-21 Matt Loper <matt@helixcode.com> + + * .cvsignore: Added *.lo. + +2000-02-19 Matt Loper <matt@helixcode.com> + + * .cvsignore: Added tlacuache and tl-test. + +2000-02-18 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * Makefile.am (INCLUDES): Use BONOBO_VFS_GNOME_CFLAGS instead of + GNOMEUI_INCLUDES, as we use Bonobo and VFS. + +2000-02-17 Seth Alves <alves@hungry.com> + + * cal-backend.h: moved CalendarFormat type def here + + * cal-backend.c (cal_backend_load): if extension suggests + an ical file, attempt to load an iCal file. + (cal_get_type_from_filename): returns CAL_ICAL if file + extension is 'ics' or 'ifb', else returns CAL_VCAL + (icalendar_calendar_load): moved this here from + icalendar.c because it needs to call the static function + add_object. + +2000-02-17 Federico Mena Quintero <federico@helixcode.com> + + * cal-client.c (cal_client_remove_object): Implemented. + + * cal.c (cal_notify_remove): Implemented. + (Cal_remove_object): Implemented. + (cal_get_epv): Fill in the remove_object field in the epv. + + * cal-backend.c (cal_backend_remove_object): Implemented. + (notify_remove): New function to notify clients that an object was + removed. + +2000-02-16 Russell Steinthal <rms39@columbia.edu> + + * calobj.[ch], eventedit.c, main.c: Change iCalObject.organizer + from char* to iCalPerson* + + * calobj.[ch]: Change iCalObject.related from list of char* to + list of iCalRelation*; assorted related fixes + + * icalendar.c: interface between libical and the gnomecal + internal representation + +2000-02-11 Federico Mena Quintero <federico@helixcode.com> + + * cal-client.c (cal_client_update_object): Implemented. + + * cal.c (cal_notify_update): New function to notify the listener + about an updated object. + (Cal_update_object): Implemented. + (Cal_get_uids): set_release() the sequence to TRUE. + (Cal_get_events_in_range): Likewise. + + * cal-backend.c (remove_object): New function to remove objects + from a calendar backend. + (cal_backend_update_object): New public function to update an + object and notify clients about it. + + * evolution-calendar.idl (Cal): Added update_object() and + delete_object() methods. + (Listener): Removed the obj_changed method and renamed obj_added + to obj_updated. We now only have updated and removed notifiers. + + * cal-listener.[ch]: Removed the "changed" notification code. + Changed the "added" notification code to the "updated" + notification. + + * cal-client.c: Likewise. + + * tlacuache.c (create_cal_factory): Connect to "destroy" on the + factory and exit the main loop when the factory is destroyed. + + * cal-factory.c (backend_destroy_cb): New callback used when a + backend is destroyed. Removes the backend from the factory's hash + table and unrefs the factory if all backends go away. + (add_calendar_client): Free the environment. + + * cal.c (cal_new): Use bonobo_object_unref() if we fail to + initialize. + + * cal-listener.c (cal_listener_new): Likewise. + + * layout.c (layout_events): Plug li.partition memory leak. + +2000-02-10 Federico Mena Quintero <federico@helixcode.com> + + * cal-backend.c (cal_backend_add_cal): Connect to the Cal's + destroy signal. + (cal_backend_remove_cal): Killed function now that removal of Cal + objects is done in their destroy callback. + (cal_destroy_cb): New callback to remove a Cal from the backend's + list of clients. Also, the backend destroys itself when there are + no more clients connected to it. + (save): New placeholder function to save a backend. + (destroy): New function to destroy a backend's data. + (cal_backend_destroy): Save the calendar and destroy it. + + * cal.c (cal_destroy): Reset the priv->backend to NULL. + + * cal-factory.c (add_calendar_client): There is no need to call + cal_backend_remove_cal(); we can now just destroy the Cal object. + (create_fn): Make sure we always unref the URI. + (load_fn): Move the URI unref to the end of the function for + safety. + + * cal-factory.c (add_calendar_client): Unref the Cal only if + notification of the listener was unsuccessful. Otherwise, the + calendar user agent (Listener side) keeps the reference. + + * tl-test.c (list_uids): Free the calobj. + + * cal-client.c (cal_loaded_cb): Use bonobo_object_unref() to get + rid of the listener. + (load_or_create): Likewise. + (destroy_factory): New function to get rid of the factory. + (destroy_listener): New function to get rid of the listener. + (destroy_cal): New function to get rid of the calendar client + interface object. + (cal_client_destroy): Free all resources. + (cal_client_get_object): CORBA_free() the calobj string. Boy, I + love memprof. + + * cal-listener.c (cal_listener_destroy): Reset the priv->cal to + CORBA_OBJECT_NIL. + + * cal-backend.c (cal_backend_remove_cal): Do not unref the Cal, + since the calendar user agent owns it. + (cal_backend_add_cal): Do not ref the Cal, since the calendar user + agent owns it. + + * cal-factory.c (add_calendar_client): Use bonobo_object_unref() + to get rid of the calendar client interface object. + + * calobj.c (ical_object_create_from_vobject): Duplicate the + default "PUBLIC" string. + +2000-02-09 Federico Mena Quintero <federico@helixcode.com> + + * cal-factory.c (cal_factory_load): Added documentation comment. + (load_fn): Do not print a message if the backend could not be + loaded due to a non-fatal error. + (queue_load_create_job): Moved the stuff from cal_factory_load() + to here. Now this function serves to queue load or create + requests. + (cal_factory_load): Use queue_load_create_job(). + (cal_factory_create): Implemented; use queue_load_create_job(). + (create_fn): New job handler for creating new calendars. + (create_backend): New function to create a new backend with a new + calendar. + (add_backend): New helper function to add backends to the + factory's hash table. + (load_backend): Use add_backend() instead of adding the backend by + ourselves. + + * cal-client.c (load_or_create): Moved the functionality from + cal_client_load_calendar() to here, and added an option to create + a new calendar instead of loading an existing one. + (cal_client_load_calendar): Use load_or_create(). + (cal_client_create_calendar): Implemented. + + * cal-backend.c (cal_backend_create): Implemented. + + * evolution-calendar.idl (LoadStatus): Added an IN_USE error for + create requests. + + * cal-listener.h (CalListenerLoadStatus): Added CAL_LISTENER_LOAD_IN_USE. + + * cal-listener.c (Listener_cal_loaded): Convert the IN_USE error. + + * cal-client.h (CalClientLoadStatus): Added CAL_CLIENT_LOAD_IN_USE. + + * cal-client.c (cal_loaded_cb): Handle CAL_LISTENER_LOAD_IN_USE. + + * tl-test.c: New test program for the calendar client side; it + also exercises the server side by sending commands to it. + + * Makefile.am: Added the tl-test program. + + * tlacuache.gnorba: Updated. + + * tlacuache.c (create_cal_factory): Use the right GOAD id. + + * cal-client.c (cal_client_construct): Use the right GOAD id. + +2000-02-08 Federico Mena Quintero <federico@helixcode.com> + + * evolution-calendar.idl (Cal): Added get_uids() method to get a + list of UIDs based on object types. + + * cal-backend.c (cal_backend_get_uids): Implemented get_uids() in + the backend. + + * cal.c (Cal_get_uids): Implemented get_uids() method. + + * cal-client.c (cal_client_get_uids): Implemented client-side + function. + + * cal-util.c (cal_obj_instance_list_free): Doh. Free the list, + not the last link. + (cal_obj_uid_list_free): New function to free a list of UIDs. + + * GnomeCal.idl (Repository): Removed unused method + get_object_by_id_list(). This is just for cleanup purposes and to + remind me exactly of what needs to be moved over to + evolution-calendar.idl. + (Repository): Removed unused get_objects() method. + + * corba-cal.c (init_calendar_repo_class): Removed the unused + get_objects method. + + * calobj.h (CalObjFindStatus): New status value enumeration for + the find function. + + * calobj.c (ical_object_find_in_string): New function to parse a + complete calendar and find a calendar object in it. This should + be used instead ical_object_new_from_string() in the future. + + * evolution-calendar.idl (CalObjInstance): Added an uid field. + Now the idea is that whenever calendar object strings are passed + around, their UIDs are passed along with them so that the actual + object can be pulled from the whole VCAL object using its UID to + identify it. + + * cal-util.h (CalObjInstance): Added uid field. + + * cal-util.c (cal_obj_instance_list_free): Free the UIDs. + + * cal-backend.c (build_event_list): Store the object's UID in the + instance structure. + + * cal.c (Cal_get_events_in_range): Copy the UID field to the CORBA + structure. + + * cal-client.c (cal_client_get_events_in_range): Copy the UID + field from the CORBA structure. + + * main.c (gnome_cal_file_menu): Removed unfinished html-month stuff. + + * Makefile.am (gnomecal_SOURCES): Removed html-month.c. + + * gnome-cal.c: #include "alarm.h" + (mail_notify): Made static. + + * alarm.h: #include "calobj.h" + + * corba-cal-factory.h (init_corba_server): Fixed prototype. + + * quick-view.c (create_items_for_event): Made static. + + * gncal-todo.c (column_resized): Made static. + + * layout.c (find_index): Made static. + +2000-02-08 Federico Mena Quintero <federico@helixcode.com> + + * evolution-calendar.idl (CalObjInstance): New struct to wrap + instances of calendar objects for recurrencies and alarms. + (Cal::get_events_in_range): New method to get ocurring and + recurring events by time range. + + * cal-backend.c (cal_backend_get_events_in_range): New function to + get a list of event instances in a time range. + (string_from_ical_object): New internal function. + (cal_backend_get_object): Use string_from_ical_object() instead of + doing everything ourselves. + (cal_backend_get_events_in_range): New function to get a list of + the events that occur or recur in a specified time range. + + * cal-client.c (cal_client_get_events_in_range): Implemented + client-side function. + + * cal-util.h: + * cal-util.c: New files with utilities and types common to the + client and server parts. + (CalObjInstance): New structure to hold an instance of an actual + occurrence, recurrence, or alarm trigger of a calendar object. + (cal_obj_instance_list_free): New function to free a list of + calendar object instances. + + * cal.c (Cal_get_events_in_range): Implemented new method. + + * corba-cal.c (cal_repo_get_updated_objects): Free `str' with + free(), not g_free(), since calendar_get_as_vcal_string() uses + writeMemVObject(), which uses realloc(). Fixed in gnome-pim as + well. + +2000-02-04 Federico Mena Quintero <federico@helixcode.com> + + * cal-backend.c (get_calendar_base_vobject): New function to + create the base VObject for a calendar. + (cal_backend_get_object): Create the base calendar and add the + sought object to it, then stringify it. + + * evolution-calendar.idl (Listener::obj_added + Listener::obj_changed): Now these pass in just the UIDs, not the + complete objects. + + * cal-listener.c (Listener_obj_added): Changed to pass in the uid, + not the object. + (Listener_obj_changed): Likewise. + + * cal-client.h (CalClientClass): Made the obj_added and + obj_changed signals take in the UIDs, not the full objects. + + * cal-client.c (obj_added_cb): Likewise. + (obj_changed_cb): Likewise. + +2000-02-04 Federico Mena Quintero <federico@helixcode.com> + + * cal-backend.c (CalBackendPrivate): Renamed the event_hash field + to object_hash. Now we hash all the calendar's objects here based + on their UIDs. + (ensure_uid): New function to create UIDs for calendar objects + that don't have them. + (add_object): Ensure the object has an UID before inserting it in + the calendar. + (cal_backend_get_object): New function. + +2000-02-03 Federico Mena Quintero <federico@helixcode.com> + + * evolution-calendar.idl (Cal): Added the get_object() method. + + * cal-client.c (cal_client_get_object): New function to get a + calendar object by its UID. + + * cal.c (Cal_get_object): Implemented. + + * cal-backend.c (cal_backend_get_object): New unfinished backend + function. We need some reorganizing of how the calendar objects + are stored. + +2000-02-02 Federico Mena Quintero <federico@helixcode.com> + + * Makefile.am (gnomecal_SOURCES): Added the CORBA generated + sources. + +2000-02-01 Federico Mena Quintero <federico@helixcode.com> + + * cal-client.c (cal_loaded): Handle the cal_loaded signal from the + listener. Store the calendar client interface object, and emit + our own cal_loaded signal. + (cal_client_load_calendar): Connect to the listener's signals. + (cal_client_class_init): Added the "obj_added", "obj_removed", + öbj_changed" signals. + (obj_added_cb): Handle the signal from the listener. + (obj_removed_cb): Likewise. + (obj_changed_cb): Likewise. + +2000-01-30 Federico Mena Quintero <federico@helixcode.com> + + * Makefile.am (gnomecal_SOURCES): Added cal-client.[ch] and + cal-listener.[ch]. + +2000-01-30 Federico Mena Quintero <federico@helixcode.com> + + * evolution-calendar.idl: Changed the namespace from + GNOME::Calendar to Evolution::Calendar. + (Listener::LoadStatus): Fixed SUCESSS -> SUCCESS typo. And I + never noticed it in the implementation. Ain't M-/ grand? + + * Makefile.am: Changed ocurrences of gnome-calendar.idl to + evolution-calendar.idl. + + * *.[ch]: Changed GNOME_Calendar_foo identifiers to + Evolution_Calendar_foo. + +2000-01-25 Federico Mena Quintero <federico@helixcode.com> + + * cal-client.c cal-client.h: New files with the calendar client + object. + +2000-01-25 Federico Mena Quintero <federico@helixcode.com> + + * cal-factory.c (CalFactory_load): Check that the listener is not + nil and emit and exception if it is. + + * gnome-calendar.idl (CalFactory::load CalFactory::create): Now + these raise the NilListener exception. + + * tlacuache.c (calendar_notify): Error stub for alarms. + (alarm_defaults): Stub array. + (debug_alarms): Stub variable. + (main): Initialize gnome-vfs. + +2000-01-24 Federico Mena Quintero <federico@helixcode.com> + + * tlacuache.c: New main module for the Tlacuache personal calendar + server. + + * tlacuache.gnorba: New gnorba file for Tlacuache, the GNOME + personal calendar server. + + * Makefile.am: Added the stuff necessary to build Tlacuache. + + * cal.c (Cal_get_uri): Convert the URI to a string before + returning it. + + * cal-factory.c (CalFactory_create): Doh, this function is void. + + * job.c (job_add): Use g_idle_add(), not gtk_idle_add(). + +2000-01-24 Federico Mena Quintero <federico@helixcode.com> + + * cal-backend.c (cal_backend_remove_cal): New function to remove a + calendar client interface object from a backend. + (cal_backend_load): Convert the URI to string and use + Parse_MIME_FromFileName(). The conversion is not very smart, + though. + + * cal-factory.c (load_backend): Moved most of the error handling + upstream to load_fn(). + (load_fn): Handle failure in case the backend could not be loaded. + (cal_factory_destroy): Free the backends and the backend hash + table. + (add_calendar_client): Implemented. We create a Cal client + interface object and attach it to the backend, and we notify the + listener. + +2000-01-22 Federico Mena Quintero <federico@helixcode.com> + + * cal-factory.c (lookup_backend): Renamed from lookup_calendar(). + Also, return a backend instead of a Cal client object. + + * cal-backend.c (cal_backend_load): Take in a GnomeVFSURI, not a + string. + + * cal-listener.c (Listener_cal_loaded): Pass the load status to + the signal. + (cal_listener_destroy): Better error checking. + (cal_listener_new): Better error checking. + + * cal-listener.h (CalListenerLoadStatus): New enum for the load + status of a calendar. + (CalListenerClass): Added the status argument to the cal_loaded + signal. + + * gnome-calendar.idl (cal_loaded): Added a load status code. + + * cal-backend.h (CalBackendLoadStatus): Renamed from + CalBackendLoadResult. + +2000-01-18 Federico Mena Quintero <federico@helixcode.com> + + * cal-backend.c cal-backend.h: Moved the calendar backend here. + This is the actual calendar-handling object. + (load_from_vobject): Moved over from calendar.c. Modified to use + a CalBackend instead of the old Calendar structure. + (add_object): Likewise. + + * cal.c: Now the Cal object is just a calendar client interface + object; we use it as a "viewport" onto a CalBackend. This also + lets us do correct resource management. + + * cal-common.h: New file with common forward declarations; we + can't have circular dependencies between headers. + +2000-01-18 Federico Mena Quintero <federico@helixcode.com> + + * cal-factory.c (cal_factory_load): Queue a load job. + (load_fn): Load job handler. Lookup the calendar by URI, load it + if it is not loaded, or just report it to the new listener if it is. + + * job.c job.h: New files with a simple job queue manager. + + * gnome-calendar.idl (Listener::cal_loaded): Do not return the + whole calendar object string. The client will be able to query + the calendar for the events it needs. + + * cal-listener.c (Listener_cal_loaded): Ref the calendar GNOME + object. We unref it when the listener is destroyed. + +2000-01-17 Federico Mena Quintero <federico@helixcode.com> + + The files from the gncal directory of the gnome-pim module on CVS + were moved here, to evolution/calendar, in preparation for the + Evolution work. The calendar is being split into a model/view + architecture. The model is a personal calendar server (PAS): it + provides storage, notification, and event generation; the + views/controllers are the calendar user agents and things like + Pilot synchronizers. + +2000-01-11 Federico Mena Quintero <federico@helixcode.com> + + * cal.c: Removed the CORBA listener methods, adjusted for the new + IDL. + + * cal-listener.c (cal_listener_init): Create the private + structure. In it we hold a reference to the calendar the listener + is watching. + (cal_listener_destroy): Destroy the private structure and unref + the calendar. + (Listener_cal_loaded): Stuff the calendar into our private data. + (Listener_obj_added): Adjusted for new IDL. + (Listener_obj_removed): Likewise. + + * gnome-calendar.idl: New IDL for the personal calendar server. + + * cal.h cal.c: New files with the calendar object. + + * cal-listener.h cal-listener.c: New files with the calendar + listener object. + + * cal-factory.h cal-factory.c: New files with the calendar factory + object. + +2000-01-09 Eskil Heyn Olsen <deity@eskil.dk> + + * Makefile.am: Changes to remove todo capplet stuff from distro. + +2000-01-08 Vadim Strizhevsky <vadim@optonline.net> + + * calendar-conduit-control-applet.c: Added pilotID argument to + gpilotd_conduit_mgmt_new. + + +2000-01-05 Eskil Heyn Olsen <deity@eskil.dk> + + * GnomeCal.idl: Added an argument to get_number_of_objects, so you + can choose which state the object should have + (any/new/modified/...). Will also add one to choose type + (event/journal etc). + + * corba-cal.c (cal_repo_get_number_of_objects): Implemented the + new version of get_number_of_objects. + + * calendar-conduit.c (pre_sync): Calls various + gnome_pilot_conduit_standard_abs_set_num_yadayda to get progress bars. + +2000-01-04 Eskil Heyn Olsen <deity@eskil.dk> + + * calendar-conduit.c (start_calendar_server): Let's not call + g_error, but g_warning instead. + (pre_sync): Get record numbers info, total, new, deleted etc, and + tell gpilotd. + +1999-12-31 Eskil Heyn Olsen <deity@eskil.dk> + + * eventedit.c (ee_store_recur_end_to_ical): Adds 86400 secs (1 + day) to the date chooses by the user. This ensures the recurrence + also occurs on that date. + (ee_rp_init_ending_date): And subtracts 86400 secs when about to + redisplay the box. + + * calendar.h: Added an argument to calendar_new, to enable certain + features, such as initing alarms or nor. + + * calendar.c (calendar_new): Implemented support for the + CALENDAR_INIT_ALARMS option to calendar_new. + + * corba-cal.c (cal_repo_get_updated_objects): Added + CALENDAR_INIT_ALARMS to calendar_new calls. + + * main.c: Added CALENDAR_INIT_ALARMS to calendar_new calls. This + should probably be CALENDAR_INIT_NIL, but I'm not sure, guess + steintr should check it. + + * gnome-cal.c: Added CALENDAR_INIT_ALARMS to calendar_new calls. + + * calendar-pilot-sync.c: Added CALENDAR_INIT_NIL to calendar_new calls. + +1999-12-10 Russell Steinthal <rms39@columbia.edu> + + * eventedit.c (ee_create_ae): Fix sensitivity bug when used to + create default alarm box (widgets in that box should always be + sensitive, even if the enabled checkbutton is not set) + +1999-12-08 Eskil Heyn Olsen <deity@eskil.dk> + + * calendar-conduit-control-applet.c (setSettings): Capplets now + sets first_sync on enable, this should make the conduit copy old + entries from the pilot to gnomecal. + +1999-12-07 Eskil Heyn Olsen <deity@eskil.dk> + + * calendar-conduit.c (pre_sync): Check if local store is + empty. If, force slow sync. + + * GnomeCal.idl (GNOME): Added get_number_of_objects. + + * corba-cal.c (cal_repo_get_number_of_objects): implemented the + get_number_of_objects. + + * calendar-conduit-control-applet.c (setStateCfg): Fixed bug that + caused the capplet to always set the sync action to Disable upon start. + +1999-12-05 Eskil Heyn Olsen <deity@eskil.dk> + + * Makefile.am (Conduits_second_DATA): Also install .desktop files + for conduit capplets in the gnome/apps menu dir. + +1999-12-04 Eskil Heyn Olsen <deity@eskil.dk> + + * Makefile.am (EXTRA_DIST): Added .desktop files to EXTRA_DIST. + +1999-10-12 Clifford R. Conover <rusty@zootweb.com> + + * gncal-todo.c Todo List improvements. + + Cleaned up todo item highlighting, added support for highlighting + events due today, and events not due yet. Colors are configurable + on the Colors Tab of the properties window. + + Renamed Frame in Properties window to Colors rather then Month + Colors since we are now asking for Todo item colors. + + Added ability to display time until todo item is due in list, it + automatically selects the best denomination of time (up to weeks) + and down to seconds to display. This should be made configurable + in a future version. + + Changed Todo dialog to ask for time that event is due. This + allows more accurate tracking of then the item is due, before the + dialog was only asking for the date of the todo item. + +1999-12-03 Eskil Heyn Olsen <deity@eskil.dk> + + * calendar-conduit.c: undef DEBUG_CALCONDUT, suppresses debug output. + +1999-12-02 Russell Steinthal <rms39@columbia.edu> + + * alarm.c: Enhanced debug support: can be toggled on and off by + SIGUSR1, reports alarms which could not be added + + * gnome-cal.c, main.[ch], prop.c: Add snooze capability for audio + and display alarms. Snooze interval can be configured in the + Properties box. + +1999-11-30 Eskil Heyn Olsen <deity@eskil.dk> + + * calendar-conduit.c (compare): Fixed compare bug. Also neated up + some of the if's in set_status. + +1999-11-22 Russell Steinthal <rms39@columbia.edu> + + * Merged todo list coloring patch from stable + * Added myself to AUTHORS, about box (per Miguel) + +1999-11-22 Eskil Heyn Olsen <deity@eskil.dk> + + * calendar-conduit.c (pre_sync): Writes some warning + messages when pre_sync fails. + +1999-11-14 Eskil Heyn Olsen <deity@eskil.dk> + + * Makefile.am: Stupid misplaced endif cause gncal to depend on an + install gnome-pilot... fixed... sorry. + +1999-11-12 Eskil Heyn Olsen <deity@eskil.dk> + + * Makefile.am (extra_pilot_bins): Fixed the if then else problem, + using solution suggested by James Henstridge, appears to be caused + by a (by now fixed) bug in my automake. + +1999-11-12 Russell Steinthal <rms39@columbia.edu> + + * prop.c: Config code for timeout, make Alarms property page use a + vbox instead of an hbox so that the propbox stays a reasonable width. + + * gnome-cal.c, main.[ch]: Add timeout for audio alarms, code to load + from config file + + * eventedit.c: Give some static functions external linkage so they + can be used elsewhere (make_spin_button); add some prototypes to + appease gcc. + +1999-11-11 Russell Steinthal <rms39@columbia.edu> + + * calendar.c (calendar_day_change): Add call to + calendar_init_alarms() to schedule another day change alarm. + +1999-11-09 Eskil Heyn Olsen <deity@eskil.dk> + + * calendar-conduit.c: Enabled debug output. Sets a g_log_domain, + now version 0.8.5. Consistent use of GSList/GList. Implemented + compare, default uses one that compares the contents of a struct + Appointment, but also has #ifdeffed code that does a field level + comparison, not complete, but perhaps educational. + + * Makefile.am (#todo_conduit_control_applet_SOURCES): Fixed an + unwanted conditional on libcalendar_conduit_la_LDFLAGS + +1999-11-05 Eskil Heyn Olsen <deity@eskil.dk> + + * calendar-conduit-control-applet.c (readStateCfg): Commented the + code out, thus the capplet works again. + +1999-11-04 Eskil Olsen <deity@eskil.dk> + + * Makefile.am: Uses the PISOCK_LIBDIR, for people with odd install + dirs for their pilot-link. Also install a pretty icon for the + calendar-conduit. + + * calendar-conduit-control-applet.c: Modfied the + try/revert/ok/cancel scheme to be more intuitive, also uses a + GtkOptionMenu for the possible sync methods. + + * calendar-conduit-control-applet.desktop: use the nice icon... + + * calendar-conduit.c: Ack, had to define debug_alarms and + alarm_default, otherwise they are undefined. Is gncal code messy + or is this considered a way of configuring the cal engine ? + Implemented delete_all syncabs methods. + + * calendar-pilot-sync.c: also had to declare debug_alarms and + alarm_defaults, just as ugly. + +1999-11-02 Russell Steinthal <rms39@columbia.edu> + + * prop.c: Add new alarm page to properties box + + * prop.c, calobj.c, main.[ch] eventedit.c: New support for default + alarms, configurable in the properties box. + + * gnome-cal.c, prop.c, main.[ch]: add option to beep on Display + alarms + +1999-10-23 Russell Steinthal <rms39@columbia.edu> + + * calendar.c (calendar_new): Correctly initialize calendar_day_end + and calendar_day_begin *before* installing day-change alarm. + +1999-10-21 Russell Steinthal <rms39@columbia.edu> + + * alarm.c, main.c: Added alarm debugging code + + * main.c (open_ok): Show an error box if the user tries to open a + non-existent file; fixes bug #1818 + +1999-10-19 Russell Steinthal <rms39@columbia.edu> + + * gnome-cal.c (calendar_notify): Fix typos which were causing + invalid times in audio notification dialogs; fixes Bug #2561 + +1999-10-18 Russell Steinthal <rms39@columbia.edu> + + * gncal-day-panel.c (gncal_day_panel_new): Placed the various + elements of the day view in paned windows so that the user can + adjust the relative sizes of the daily schedule, monthly calendar, + and to-do list. + +1999-10-18 Martin Norbäck <norpan@bigfoot.com> + + * gncal.desktop: Added swedish translation + +1999-10-13 Eskil Olsen <deity@eskil.dk> + + * Makefile.am: Hopefully the fixes the much-hated + gnome-pilot dependency. + +1999-10-07 Eskil Olsen <deity@eskil.dk> + + * calendar.c (calendar_object_changed): moved the pilot_status = + MOD up, so even a CHANGE_SUMMARY will set the modified flag. + + * calendar-conduit.c: more _free calls, vamped the noise on output. + +1999-10-06 Eskil Olsen <deity@eskil.dk> + + * *conduit*[ch]: checks return values from gpilotd_init/connect. + + * calender.c (vcalendar_create_from_calendar): removed a set + of cleanVObject cleanStrTbl, since the freed memory that the + function returned. + +1999-09-27 Timur Bakeyev <mc@bat.ru> + + * timeutil.c (time_from_isodate): Use tm.gmtoff or timezone to get + correct offset from UTC, according to HAVE_TM_GMTOFF or HAVE_TIMEZONE. + See also 1999-07-19 Matt Martin <matt@abacusnet.net> + +1999-09-27 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * month-view.c (add_event): ditto + (mark_current_day): ditto + (month_view_set): ditto + + * goto.c (goto_dialog): ditto. + + * gnome-month-item.c (gnome_month_item_init): ditto. + + * gncal-day-panel.c (gncal_day_panel_new): ditto. + + * getdate.c (RelativeDate): ditto. + + * eventedit.c (set_all_day): ditto. + (ee_rp_init_rule): ditto. + + * calendar.c (vcalendar_create_from_calendar): ditto. + + * calendar-conduit.c (update_record): ditto. + + * calobj.c (ical_object_generate_events): Get rid of pointers to + values returned from localtime, as it uses a static buffer. + +1999-09-26 Eskil Olsen <deity@eskil.dk> + + * corba-cal.c: the g_free that was commented out since glib said + was a duplicate free, was supposed to be a free. + + * GnomeCal.idl/corba-cal.c: added a get_object_id_list and a + get_objects_by_id_list. Latter is not done. + + * calendar-conduit.c: rewrote the way the conduit iterates over + records. It no longers fetches all entries (since that didn't work + with more then 285 entries. It now fetches the id list, and gets + each record. (will be using get_objects_by_id_list to get records + in amounts of 10 or so later, to reduce amount of corba calls). + + * calendar-conduit.c: now sets alarm parameters when transferring + from gnomecal to pilot. + +1999-09-23 Eskil Olsen <deity@eskil.dk> + + * calendar-conduit.c: better merge of summary/description + when doing ical_from_remote (update_record), also handles + import from gnomecal to pilot better, and on both ways, repeat + events are much better now. + +1999-09-22 Eskil Olsen <deity@eskil.dk> + + * corba-cal.c: commented out a g_free that glib reported + as being a duplicate free. + * calendar-conduit.c: got gnomecal->pilot up and runnning. + +1999-02-06 Lauris Kaplinski <lauris@ariman.ee> + + * gncal.desktop: Added Estonian translations. + +1999-09-14 Federico Mena Quintero <federico@redhat.com> + + * gncal-full-day.c (child_popup_menu): Set the data pointers for + all the items. + +1999-09-14 Kjartan Maraas <kmaraas@online.no> + + * doc/C/gnomecal.sgml: Merge from gnome-pim-1-0. Synced with newest + user-guide. + +1999-09-01 Miguel de Icaza <miguel@gnu.org> + + * eventedit.c (ee_create_buttons): Make the OK button the default + button per Russell's suggestion. + +1999-08-30 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * calendar.c (calendar_object_changed): Modify the + object->last_mod field. + (calendar_add_object): Ditto. + + Closes bug #676 + + * main.c (save_calendar_cmd): Fix problem in which we warned the + user about the calendar being modified the first time the calendar + was used. + +1999-08-22 Tomas Ogren <stric@ing.umu.se> + + * gnomecal.gnorba: "GenericFactoy" is wrong... + +1999-08-15 Miguel de Icaza <miguel@gnu.org> + + * calobj.c (ical_gen_uid): Fix the hostname part. + +1999-08-07 Peter Teichman <pat4@acpub.duke.edu> + + * calendar-pilot-sync.c (sync_pilot): sync correctly for objects + created on the pilot, but not dirty (because they have been synced + with some other program in the past) + +1999-07-30 Miguel de Icaza <miguel@gnu.org> + + * month-view.c (month_view_init): Release points here. + +1999-08-02 Peter Teichman <pat4@acpub.duke.edu> + + * Makefile.am (libcalendar_conduit_la_LDFLAGS): + libcalendar_conduit now installs + + * calendar-pilot-sync.c (sync_pilot): do deletion of appointments + correctly, when they are deleted on the pilot + (conduit_free_Appointment): protect against double-freeing parts + of the Appointment structure + (update_record): all-day events from the pilot are handled a bit + more reasonably + +1999-08-01 Peter Teichman <pat4@acpub.duke.edu> + + * calendar-pilot-sync.c (sync_object_to_pilot): The multi-day + appointment corruption bug is dead. Whoo! + +1999-07-31 Peter Teichman <pat4@acpub.duke.edu> + + * Makefile.am: fixed this up slightly with respect to pilot conduits + +1999-07-30 Jonathan Blandford <jrb@redhat.com> + + * Makefile.am (libcalendar_conduit_la_LIBADD): More autoconf-stuff + +1999-07-29 Jonathan Blandford <jrb@redhat.com> + + * gnome-cal.c (setup_widgets): Add scrolling to the yearview. + +1999-07-28 Miguel de Icaza <miguel@gnu.org> + + * calendar-pilot-sync.c: (sync_object_to_pilot): If the enddate is + not set, set the repeatForever to 1. This fixes all of the + birthdays problems I had. + + Make the code not take arguments + (sync_cal_to_pilot): Nice event update information + + * calendar.c (calendar_new): Add Event UID hash table. + (calendar_add_object): Add events to the hash table here. + (calendar_remove_object): Remove events here. + (calendar_object_find_event): Use the hash table here. + + * main.c (save_calendar_cmd): The object is already destroyed by + gnome_dialog_run. + + * calendar-pilot-sync.c (sync_object_to_pilot): Do not turn + archived bit on. + + * calobj.c (ical_gen_uid): Use the hostname, not the domain name. + (ical_gen_uid): Add a serial number. Isodates can be small. + + * corba-cal.c (cal_repo_update_pilot_id): New method to update the + pilot status. + (cal_repo_get_updated_objects): New method. Returns a list of + modified and not-sycned objects + + * calendar-pilot-sync.c (sync_cal_to_pilot): New function to sync + from the GnomeCalendar to the pilot. + (sync_object_to_pilot): Sync a single event to the pilot. + (try_alarm): Alarm syncing code. + +1999-07-27 Miguel de Icaza <miguel@gnu.org> + + * calendar-pilot-sync.c: New file. Implements PalmPilot + syncronization with the Gnome Calendar. + + * calobj.c (ical_object_new_from_string): New function. Creates + an iCalObject from a vCalendar string that is supposed to contain + only one vEvent. + + * calendar.c: + (calendar_save): Split this routine in two. + + * gnome-cal.c (gnome_calendar_new): Create the corba server here. + + * main.c: Include gnorba.h, and corba-cal-factory.h here + (close_cmd): Kill the calendar server on shutdown. + + * calobj.c (load_recur_yearly_day): Added a fixme comment. WE + need to handle intervals in the years. + + * calendar.c (calendar_object_find_in_list, calendar_object_find, + calendar_object_find_todo, calendar_object_find_event): New + functions for looking up information. + + * main.c (gnome_calendar_locate): New function. + + * corba-cal.c (calendar_create_object): New file. Implements the + corba server. + + * calendar.c (calendar_object_changed): Flag pilot-status as changed. + + * calobj.c (ical_object_to_vobject): Save pilot information for syncing. + (ical_object_create_from_vobject): Load syncing information for + pilot. Do it in a way compatible with KOrganizer. + +1999-07-26 Miguel de Icaza <miguel@gnu.org> + + * calobj.c (ical_object_create_from_vobject): Generate unique IDs + on Vevents we load that lack it. WE need this for the old + gnome calendar generated files (ie, before now :-). + + Required to sync with the Palm + +1999-07-26 Miguel de Icaza <miguel@gnu.org> + + * calobj.c (ical_object_create_from_vobject): Generate unique IDs + on Vevents we load that lack it. WE need this for the old + gnome calendar generated files (ie, before now :-). + + Required to sync with the Palm + +1999-07-19 Matt Martin <matt@abacusnet.net> + + * timeutil.c (time_from_isodate): Handle the 'Z' parameter to the + ISO date format to convert from GMT time. + +1999-07-17 Nat Friedman <nat@gnome-support.com> + + * calendar.c (calendar_add_object): Copy the new UID into the + iCalObject structure. + +1999-07-16 Miguel de Icaza <miguel@gnu.org> + + * gnome-month-item.c (gnome_month_item_set_arg): Merge fix from + gnome-pim-1-0: Fixed cut&paste bug for day fontsets. + +1999-07-14 Miguel de Icaza <miguel@gnu.org> + + * calobj.c (ical_gen_uid): Returns a UID. + (ical_object_new): Use a UID when creating an event. Should get + syncing done easier. + +1999-07-14 Nicholas J Kreucher <nick@poetic.com> + + * calobj.c (skip_numbers): Actually skip over the numbers. + (ical_object_to_vobject): Test the proper variable for storing the + proper information. + +1999-07-14 Jean-Noel Guiheneuf <jean-noel.guiheneuf@wanadoo.fr> + + * timeutil.c (time_add_month): Fixed the problem with next month + going from a 31-day to a 30-day by adjusting the date to the + closest day at the end of the month. + +1999-06-07 Mike McEwan <mike@lotusland.demon.co.uk> + + * timeutil.c (time_add_month): Tell ktime' that we don't know + about daylight saving time so that it does *not* make adjustments + when we traverse a DST boundary. + (time_year_begin): ditto. + (time_year_end): ditto. + (time_month_begin): ditto. + (time_month_end): ditto. + +1999-06-16 Anders Carlsson <anders.carlsson@tordata.se> + + * main.c (new_calendar): Realize the toplevel widget when + --hidden is passed to gnomecal. This fixes a segfault. + +1999-06-04 Robert Brady <rwb197@ecs.soton.ac.uk> + + * gnome-cal.h, gnome-cal.c: Fix abort() problem with the year view. + (Bug #1367). Thanks to Owen Cliffe <oc197@ecs.soton.ac.uk> for + helping track it down. + +1999-06-03 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * calobj.c (daynumberlist): One line bug fix from Sergey I Panov. + +1999-06-02 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * view-utils.c (nicetime): Use %H instead of %k, as %k is a GNU + extension, not available in other systems. + +1999-06-01 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * calobj.c (daynumberlist): Work around broken software that + writes a broken month-of-day as "zero". Use the dtstart date for + this on this event. + +1999-05-28 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * Makefile.am (install-data-local): help files be gone. They are + now installed from the Docbook stuff. + +1999-05-26 Russell Steinthal <steintr@condor.penguinpowered.com> + + * gncal-todo.c main.c main.h prop.c: Added support for priorities + for todo items. Doesn't do much, but you can set them and sort by + them. (Use the properties box to enable them; should they be on + by default?) + +1999-05-25 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * main.c (parse_an_arg): Added missing break here. It was causing + core dumps when invoked with --userfile. + + * gnome-cal.c (gnome_calendar_set_view): Add some assertions here, + to pin point the bug reported on gnome-list. + + * calobj.c (load_recurrence): Make intervals always exist. a 0 + interval is wrong. + +1999-05-25 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * year-view.c: Removed unused macro CALENDAR_HEIGHT. + +1999-05-25 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * year-view.c (idle_handler): Set the canvas scroll region here, + not in size_allocate(). Also, use the correct width and height + based on the allocation and the precomputed minimum width/height + values. + + * gnome-cal.c (setup_widgets): Set the scrollbar policy of the + scrolled window. + + * main.c (setup_appbar): Use the correct type for the appbar. + + * gncal-day-view.c: Removed unused function switch_to_day(). + + * gncal-day-panel.c (calendar_day_selected): Removed unused variable. + +1999-05-25 Nat Friedman <nat@nat.org> + + * doc/C/gnomecal.sgml: Fixed a typo. + + * gnome-cal.c (setup_widgets): Added a scrolled window widget into + which the year view is placed. + + * year-view.c (CALENDAR_HEIGHT): The height of the total year view + inside the scrolled window. + (idle_handler): Set the height of the year view to + CALENDAR_HEIGHT. + (year_view_size_allocate): Set the scroll region of the year view + canvas to allocation->width, CALENDAR_HEIGHT. + +1999-04-25 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * main.c (dump_todo): Add --todo flag to dump the todo contents. + +1999-04-19 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gncal-todo.c (add_activated): Use same hack used in edit_activated + +1999-04-16 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gncal-todo.c (edit_activated): Kill all grabs from the CList + before running the new dialog box. + + This fixes the problem of button-3/Edit on the todo item blocking + the GUI (actually, the main window responds, but not the todo + window). + +1999-04-08 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gncal-todo.c (gncal_todo_init): Make sure we can get events for + button3. The code for the nice popup menu was there but was not + getting invoked. + +1999-04-01 Steve Murphy <murf@e-tools.com> + + * calobj.c (weekdaynum): Added this routine so Monthly recurrences + use the weekday field as a simple integer for a single weekday. + + * calobj.c (load_recur_monthly_pos): Call weekdaynum instead of + weekdaylist. The interface only lets the user input a single value + anyway. + + * calobj.c (ical_object_to_vobject): instead of code to output day + names from a bit array, use instead the value as an int and output + a single dayname. + + * calobj.c (ical_object_generate_events): first_week_day gets the + day int instead of the first entry in the bit field. I inserted a + fair chunk of code to avoid calling generate if the day is out of + range for a month. It may be unneccessary, because mktime will + turn the extra days into a valid date the next month. But not all + mktimes are equal, I fear. + + * eventedit.c (ee_store_recur_rule_to_ical): For case 3, + (Monthly), I added code to set the interval slot of the recur + struct; without this value, selecting a monthly recursing, by + date, would lead to an infinite loop broken only by a failure to + alloc more memory. Also, in the "by position" case, both + u.month_pos and u.month_day were being assigned values. This is a + mistake, as they are both part of an union, and the same + thing. The weekday field should get the recur_rr_month_weekday + value. + + * eventedit.c (ee_rp_init_rule): set default day from the weekday + field instead of the u.month_day field, which is really the + month_pos value. + + * gnome-cal.c (gnome_calendar_tag_calendar): Month days start with + 1, not 0; thus, setting tm.tm_mday = 0, and then calling mktime + will generate a time corresponding to the end of the previous + month, which may have a mday anywhere from 28 to 31. The end time + just adds 1 to the month, so your end time may not cover the last + few days of this month, depending on what the biggest mday of last + month was. I changed it so tm_mday is set to 1 instead. + +1999-03-30 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-todo.c (convert_time_t_to_char): Made static. Make it use + the full year format for strftime(). + +1999-03-27 Nuno Ferreira <nmrf@rnl.ist.utl.pt> + + * calobj.c: Include <config.h> So that strings get translated. + +1999-03-26 Tomas Ogren <stric@ing.umu.se> + + * prop.c (build_hours_menu): Made it respect 12/24h settings.. + Doesn't show until next time you open the dialog.. yet.. + +1999-03-24 Tomas Ogren <stric@ing.umu.se> + + * gncal-week-view.c (gncal_week_view_set): Did some i18n work + * eventedit.c (get_exception_string): Did some i18n work + +1999-03-24 Tomas Ogren <stric@ing.umu.se> + + * gncal-todo.c (gncal_todo_init): Made clist titles i18n:able + * main.c (poptOption): Added which views that are possible for + --view in the --help text (closes #367) + * main.c (dump_events): Added (short) month to the strftime and made + the strings i18n:able + +1999-03-23 Tomas Ogren <stric@ing.umu.se> + + * gncal/calobj.c: Added 2 paranthesis.. + "foobar = d / 60*60" is _NOT_ the same as "foobar = d / (60*60)" + which caused heavy alarm-corruption with alarms between 2 hrs and + 2 days. + +1999-03-23 Nat Friedman <nat@nat.org> + + * eventedit.c (ee_store_recur_rule_to_ical): Set the + recur->interval to the value of the recur_rr_month_period spin + button if the event is being set "by day." This closes bug #675 + as reported by bagfors@hpc2n.umu.se. Thanks for the report! + +1999-03-10 Clifford R. Conover <rconover@montana.edu> + + * gncal-todo.c (simple_todo_editor): Add support for Due Date when + adding a TODO item here. + (column_resized): New function + (init_column_sorting): New function. + (todo_click_column): New function. + (convert_time_t_to_char, make_overdue_todo_style): New functions. + + * gnome-cal.c (gnome_calendar_todo_properties_changed): New + function used to update the TODO when the properties have been + chagned for it. + + * prop.c (prop_apply_todo): Apply TODO properties. + + * gncal-day-panel.c (todo_list_properties_changed): Update the + TODO display here. + + * eventedit.c (date_edit_new): Made public + +1999-03-10 Craig A Soules (soules+@andrew.cmu.edu) + + * timeutil.c, calendar.c, calobj.c, gncal-day-panel.c: Add support + for daylight time savings. + +1999-02-28 Martin Baulig <martin@home-of-linux.org> + + * gncal-full-day.c (recompute_motion): For DRAG_MOVE, DRAG_SIZE_TOP + and DRAG_SIZE_BOTTOM: call child_focus_out () if the child currently + has the focus. + +1999-02-27 Changwoo Ryu <cwryu@adam.kaist.ac.kr> + + * quick-view.c (QUICK_VIEW_FONTSET): Added Korean font to the + fontset string. + * mark.h (*_FONTSET): Likewise. + +1999-02-23 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * calobj.c (ical_object_to_vobject): Save the owner/organizer of + the event. + (ical_object_create_from_vobject): Load the owner/organizer of the event. + + * gncal-full-day.c (delete_occurance): Assign child to data (fixes + crash on "delete this occurrance"). + +1999-02-22 Timur Bakeyev <mc@bat.ru> + + * calendar.c: According to configured values, use either tm.tm_zone + or tzname. In last case, also declare it extern. + + * prop.c: langinfo.h not available everywhere. Wrapped. BTW, works + fine without it. + +1999-02-20 Tomas Ogren <stric@ing.umu.se> + + * main.c (init_username): Made use of g_get_{user,real}_name() instead + of our own home-brew... + +1999-02-17 Sergey Panov <sipan@mit.edu> + + * gnome-month-item.c,gnome-month-item.h,goto.c,mark.h, + month-view.c,prop.c,quick-view.c,year-view.c: will define + fonts via fontset. Friendlier to locales that use iso8859-[^1] + and koi8-r encodings. Does not solve problem for Asian languiges + --- better solution is needed (e.g. standart GNOME fontstyles + defined in gtkrc). + +1999-02-16 Sergey Panov <sipan@mit.edu> + + * main.c: Use N_() macro for color settings labels in + color_props structure. + +1999-02-15 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * goto.c (goto_dialog): Indentation fixes. + +1999-02-15 Tomas Ogren <stric@ing.umu.se> + + * goto.c: Made a private copy of what localtime() returns, to be able + to keep the data after more calls to localtime(). + +1999-02-11 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * main.c (save_default_calendar): New function. Saves the + calendar if it is the user's default calendar + + * gncal-full-day.c (unrecur_appointment): + * gncal-day-panel.c (day_view_range_activated): + * eventedit.c (ee_ok): + * gncal-todo.c (ok_button): Added autosave for the default + calendar. + +1999-02-09 Tomas Ogren <stric@ing.umu.se> + + * main.c: Removed the gtk_widget_realize call. + +1999-02-06 Changwoo Ryu <cwryu@adam.kaist.ac.kr> + + * gncal.desktop: Added Korean translations. + +1999-02-04 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * eventedit.c (date_edit_new): New convenience function to create + a properly-configured date editor widget. + +1999-02-03 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-week-view.c (gncal_week_view_new): Make the calendar start + weeks on Monday if appropriate. + (gncal_week_view_time_format_changed): New function to notify the + week view that the time format has changed. + + * gncal-day-panel.c (gncal_day_panel_new): Make the calendar start + weeks on Monday if appropriate. + (gncal_day_panel_time_format_changed): New function to notify the + day panel that the time format has changed. + + * gnome-cal.c (gnome_calendar_time_format_changed): Tell the day + and week views that the time format has changed. + +1999-02-01 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * eventedit.c (event_editor_init): Set the title of the event + editor window. + +1999-01-31 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-day-view.c (gncal_day_view_expose): Do not remove the + clipping rectangle here. + + * view-utils.c (view_utils_draw_events): Remove the clipping + rectangle here, since the user of this function should not know + about it. + +1999-01-30 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * view-utils.c (view_utils_draw_events): Improve this draw + routine. Now it can split the text in lines and fit as many + events as possible. + (nicetime): Return strings without spaces at the beginning. + + * gncal-day-view.c (gncal_day_view_expose): Move clip-clear + operation here. + +1999-01-29 Jason Tackaberry <tack@dok.org> + + * gncal-full-day.c (child_popup_menu): if the user clicks on an + event that is an occurance, the menu will allow the user to delete + all occurances of this event, or just the selected occurance. + (delete_occurance): added. + + * eventedit.c (append_exception): force the clist to select the + new exception. (fixes segfault) + (delete_exception): if the last exception in the clist is deleted, + move the selection index up. (fixes segfault) + +1999-01-28 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * main.c (parse_an_arg): Add --hidden key to hide the calendar at + startup. Only works with GNOME window managers though :-( + + * calendar.c (calendar_day_change): Reschedule alarms for the new day. + + (calendar_init_alarms): Schedule an alarm for midnight to change + the calendar_day_begin/calendar_day_end. + + * alarm.c (alarm_ready): If we reschedule, there is no need to + activate any pending alarms. + +1999-01-28 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-full-day.c (child_new): Insert the summary text here. + (child_focus_in): No need to raise the window, since we have + Spiffo(tm) layout code. Boy, this is old code. + (gncal_full_day_focus_child): Now that GtkText works better, we + can avoid synthesizing a click which was causing grief, anyway. + (child_button_press): Grab the focus before popping up the menu. + + * layout.c (find_index): Added a sanity check. + + * gncal-full-day.c (child_destroy): Unmap and unrealize the child + before unparenting/destroying it. + (child_unrealize): Unrealize the widget. What was I thinking? + (child_new): Save the focus_out_event signal connection id in + Child structure (in a new field). + (child_destroy): Disconnect from the focus_out_event signal, since + we don't want to get such an event when the widget is destroyed. + (gncal_full_day_destroy): Destroy the children properly; it was + leaking memory. + +1999-01-27 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * main.c (save_calendar_cmd): Warn if the calendar file has + changed. + + * calendar.c (calendar_load, calendar_save): Keep track of the + modification time for the calendar file. + +1999-01-20 Nat Friedman <nat@nat.org> + + * gncal-full-day.c (gncal_full_day_key_press): Only trap printable + characters such that hotkeys work. + (UNSELECT_TIMEOUT): Changed to 0. Much saner behavior. + + * prop.c (properties): Connect gnome_help_pbox_display to the + GnomePropertyBox help button. + +1999-01-19 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * quick-view.c (quick_view_do_popup): Do not grab the mouse here + (it was being grabbed incorrectly, anyways). + (quick_view_map_event): Grab the mouse when the window is mapped. + This avoids the ugly "while (xGrabPointer () != Success)" hack. + (quick_view_button_release): Handle button releases here. + +1999-01-19 Tomas Ogren <stric@ing.umu.se> + + * main.c: do gtk_widget_realize on the toplevel window.. + +1999-01-13 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-day-panel.c (gncal_day_panel_new): Make the little + calendar start up with the correct date. + + * gncal-week-view.c (gncal_week_view_set): Add the month to the + date range display label. + +1999-01-08 Nat Friedman <nat@nat.org> + + * main.c: Converted some more stuff to use the standards. + +1999-01-08 Nat Friedman <nat@nat.org> + + * main.c (setup_appbar): New function to create the status bar. + (setup_menu): Install menu hints. + + Menu items updated to match the standards. New Settings menu + created. + +1998-12-30 Jeff Garzik <jgarzik@pobox.com> + + * gncal/calendar.c, gncal/gnome-cal.c, gncal/main.c, + gncal/quick-view.c: + s/g_copy_strings/g_strconcat/ + +1998-12-16 Miguel de Icaza <miguel@nuclecu.unam.mx> + + Rewrote the old and broken alarm system. It never actually + worked properly. Now it works properly, and I figured a nice way + to get the Audio alarm do something nicer (it is now like an alarm + clock :-). + + * gnome-cal.c (calendar_notify): Now we take a CalendarAlarm to + actually distinguish which alarm was triggered. + + * alarm.c (alarm_ready): The code was only activating the first + alarm. Reschedule the timer upon delivery of an alarm. + +1998-12-14 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * year-view.c (idle_handler): Use the allocation size instead of + the old fields in the canvas structure. + + * goto.c (create_days): Use gtk_widget_set_usize() instead of + gnome_canvas_set_size(). + * quick-view.c (setup_event_list): Likewise. + +1998-12-09 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gncal-todo.c (simple_todo_editor): Use gnome_dialog_set_parent. + * goto.c (goto_dialog): ditto + * prop.c (properties): ditto. + +1998-11-23 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * eventedit.c (ee_rp_init_exceptions): Update GtkClist usage. + +1998-11-23 Andrew T. Veliath <andrewtv@usa.net> + + * gncal-day-panel.c (gncal_day_panel_new): Use + gtk_scrolled_window_add_with_viewport instead of + gtk_container_add (gtk changes). + +1998-11-23 Herbert V. Riedel <hvr@hvrlab.ml.org> + + * eventedit.c: use GPOINTER_TO_INT + + * gncal-todo.c: same. + +1998-11-22 Matthew Wilson <msw@redhat.com> + + * main.c: Fixed the popt event parsing callback to have the + correct number of arguments. This stops it from segfaulting. + +1998-11-16 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * eventedit.c (ee_classification_widgets): Doh. Fixed stupid bug + where the classification buttons were not being set correctly. + (ee_store_general_values_to_ical): Take into account the fact that + radio group lists are stored in reverse order of insertion. + + * gncal-todo.c (gncal_todo_init): Use a scrolled window to put the + clist into. + +1998-11-11 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * calendar.c (calendar_save): Backup the old file before saving + the caledar. + +1998-11-06 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * calobj.c: Add ctype.h + +1998-10-31 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gnome-cal.c (gnome_calendar_direction): Add the offset from the + beginning of the current time unit (day/month/etc), otherwise it + does not work right, for example, you are on the 31st day of a + month and the next month is a 30-day one and you jump to the next + month. + +1998-10-16 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * month-view.c: Changed a lot of stuff not to use the layout code + -- the month view's days are too small to display layout + usefully. Now they display a little list of the events in each + day. We also have a popup menu for the days in the month view. + + * calendar.c (calendar_get_objects_in_range): Reverse the list so + that it is returned in increasing order. + + * eventedit.c (event_editor_new_whole_day): New public function to + create an event for the complete span of day_begin to day_end. + + * year-view.c (new_appointment): Use event_editor_new_whole_day(). + + * year-view.c (yv_popup_menu): Mark strings for i18n. + +1998-10-12 Ji Lee <g@ucsd.edu> + + * eventedit.c (ee_store_recur_rule_to_ical): The interval was + never being loaded from the spin button. + +1998-10-09 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * month-view.c (month_view_update): Create a list of children and + lay them out nicely. Lots of functions added for this purpose. + (adjust_segment): Main event segment adjustment routine. + (adjust_children): Adjusts all the children in the month view. + (child_create_segments): Creates the segments for a particular event. + (layout_children): Uses the generic layout engine to organize the children. + +1998-10-08 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-todo.c (clist_row_selected): Set the sensitivity of the + edit/delete buttons. + (gncal_todo_update): Likewise. Thanks to Dirk Luetjens for the + bug report. + + * layout.c: Do some cleanup; now we pass a struct with the layout + algorithm's state instead of passing a trillion parameters around. + + * gncal-full-day.c (layout_children): Use the new generic layout + engine. + (child_compare): Sort keys are start time then end time, not just + start time. This produces somewhat nicer results for the layout + algorithm. + + The new layout code uses a partition of the time range occupied by + the events, rather than using a fixed time granularity. This is + better since the different parts of the program that use the + layout module will have different semantics regarding snapping the + event bounds to a fixed "time grid". + +1998-10-07 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * layout.[ch]: New files that abstract the event layout code from + gncal-full-day.c into something useful for other parts of the + program. Now all event layout is done here. + + * Makefile.am (gnomecal_SOURCES): Added layout.[ch] to the list of + sources. + +1998-10-07 Carsten Schaar <nhadcasc@fs-maphy.uni-hannover.de> + + * main.c (main): Replaced the 'gnome_client_new_default' call with + 'gnome_master_client'. + +1998-10-02 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * timeutil.c (time_day_begin): Changed name from + time_start_of_day() to be consistent with the other begin/end functions. + (time_day_end): Likewise. + + * calobj.c (ical_object_get_first_weekday): New public function to + get the first toggled day in a weekday mask. Since we do not + support multiple weekdays in a monthly-by-pos rule, we just fetch + the first toggled one. + (ical_object_generate_events): Added a missing break statement. + + * timeutil.c (time_month_end): Made it consistent with the rest of + the time begin/end functions -- now it returns the first second of + the *next* month. + (time_week_end): Actually implemented this function. It will be + used when the week view is rewritten. + + * calobj.c (time_in_range): Fix off-by-one in the comparison of + the time against the end time. + + * gncal-full-day.c (expand_space): Fixed bug where the columns not + were being expanded due to a missing "slot + j". + +1998-10-01 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * month-view.c (month_view_init): Use the font #defines. + (month_view_new): Set the colors of the month view upon creation. + (mark_current_day): New function to mark the current day in the + month view. + (month_view_set): Mark the current day. + (month_view_colors_changed): Mark the current day and colorify the + month item appropriately. + + * month-view.h: Added year and month fields to the MonthView + structure. + + * main.c: Renamed the Appointments color property, since it will + be used by the month view as well. + + * goto.c (update): Set the current day's font and color. + + * year-view.c (year_view_init): Set the fonts of the month items + when creating them. + + * mark.h: Added new #defines for HEADING_FONT and TITLE_FONT. + + * year-view.c (year_view_init): Use the new font #defines. + + * prop.c (prop_apply_colors): Fixed to work with the + I-am-paranoid-and-I-need-to-size-my-ints changes to + GnomeColorPicker. + (color_spec_from_picker): Likewise. + +1998-09-30 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * goto.c (create_days): Colorify the month item and prepare it for + prelighting here. + + * main.c (color_props): Changed the default colors to something + not dull. + + * year-view.c (compute_min_size): New function to compute the + minimum size of the year view properly. + (year_view_size_request): Added two new fields to the year view + structure that contain the minimum size. Return this in the + size_request method. + (year_view_new): Call compute_min_size to save the minimum size + for later use. + (idle_handler): Make it resize the items correctly. + + * gnome-month-item.c (gnome_month_item_set_arg): Reshape when + necessary. This is needed becaues we now actually calculate a + minimum size for the month item based on the font sizes and paddings. + (check_heading_sizes): New function to calculate a minimum size + based on the headings' dimensions. + (check_day_sizes): New function to calculate a minimum size based + on the day number labels' dimensions. + (check_sizes): New function that computes a minimum size for the + month item. + (reshape): Now calls check_sizes() to ensure a minimum size for + the month item. + + * year-view.c (mark_current_day): New function to mark the current + day in the year view. + + * mark.c: Removed mark_current_day from here. + +1998-09-29 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * prop.c (fetch_color_spec): Changed name from fetch_prelight_spec + and made it conform to the new prelighting mechanism. + (fake_mark_days): Set the proper day attributes. + (reconfigure_month): Use colorify_month_item(). + (fake_mark_days): Use mark_month_item_index(). + + * mark.c (colorify_month_item): New public function to reset the + colors in a month item. + (get_attributes): New internal function that creates an array of + attributes for the days in a month item. This is the basis of all + the new optimizations to month item marking. + (unmark_month_item): Now it uses the attributes array to unmark + only the days that need unmarking. + (mark_event_in_month): Update the day attributes array. + (month_item_prepare_prelight): Changed the definition of the + prelight color query function. Use the new function. + (day_event): Do color changes based on the day attributes array. + (mark_month_item_index): New public function to mark a single day + by index. + (mark_event_in_month): Use mark_month_item_index(). + + * gnome-month-item.c (gnome_month_item_num2child): Now takes an + int, not a GnomeMonthItemChild. + (gnome_month_item_child2num): Now returns an int, not a + GnomeMonthItemChild. + (gnome_month_item_num2day): Now takes an int, not a + GnomeMonthItemChild. + + * goto.c (goto_dialog): Create the days before the year spin + button, because the year_changed callback expects the month item + to be created. The new semantics of the spin button cause it to + emit a value_changed signal on the adjustment upon creation -- is + this the behavior we want from it? + (goto_dialog): Use gtk_window_set_modal() instead of the + deprectaed gnome_dialog_set_modal(). + + * quick-view.c (quick_view_new): Make it look not as crappy by + putting the title inside the frame. + (quick_view_do_popup): Fixed the pointer grab and added a cursor. + (create_items_for_event): Query the text width/height from the + text item using the new object arguments, so that the size of the + popup window can be set properly. + + * year-view.c (do_quick_view_popup): Calculate a nice date string + for the popup window. + +1998-09-28 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * quick-view.[ch]: New file that presents a quick view of the + events in a particular day when the mouse is clicked on the year + view. Work in progress. + + * year-view.c (do_quick_view_popup): New function that creates a + quick view for the events in a day. + + * Makefile.am (gnomecal_SOURCES): Added quick-view.[ch] to the + list of sources. + +1998-09-27 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * main.c: Hotkey for File/Exit should be C-q, not C-x. + +1998-09-24 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * year-view.c (do_popup_menu): New function to execute the popup + menu in the year view. + (day_event): Invoke the popup menu with the context set to days. + (new_appointment): New function to create a new appointment from + the year view. + (do_jump): New function to do the appropriate view/date jumping + from the popup menu. + + * main.c: Fixed two icons in the File menu. + +1998-09-21 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * main.c: Added underlined shortcuts and accelerators to the main menu. + +1998-09-16 Raja R Harinath <harinath@cs.umn.edu> + + * gncal-week-view.c (<gtk/gtklabel.h>): Include. + * gncal-week-view.h (<gtk/gtkvbox.h>): Include. + +1998-09-06 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gnome-cal.c (mail_notify): Fixed the bug reported about the mail + notification not beint sent until the program was terminated. + +1998-09-03 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-full-day.c (gncal_full_day_forall): Updated foreach -> + forall from Gtk changes, bleah. + + * year-view.c (day_event): New function to handle events from + days. Jumps to the day that is clicked. + + * main.c: Use a watch cursor while the previous/today/next + functions are doing their job. + + * mark.c (month_item_prepare_prelight): New public utility + function to prepare a month item for prelighting. It will store + the proper prelight information and attach the appropriate signals. + (mark_current_day): Make the current day bold as well (useful for + color-blind people, I guess). + + * prop.c (set_current_day): Reset the date in the sample calendar + and mark the current day. + (fake_mark_days): Mark fake events in the sample calendar. + + * year-view.c (year_view_set): Use the general prelighting engine. + + * goto.c (day_event): Just process button presses, as prelighting + is done behind the scenes now. + (update): Use the general prelighting engine. + + * prop.c (create_colors_page): We can now configure the colors of + the monthly calendars! Wheeeeee! There are still some nits to be + fixed, which are listed in the TODO file. + (build_color_spec): New function to build color specifications. + (parse_color_spec): New function to parse color specifications. + + * mark.c: Modified all functions to use the configured colors. + * goto.c: Likewise. + + * main.c (colors_changed): New function that notifies all + calendars that colors have changed. + + * gnome-cal.c (gnome_calendar_colors_changed): New function that + notifies all the views that the colors have changed. + + * month-view.c (month_view_colors_changed): New function that + notifies the month view that colors have changed. + + * year-view.c (year_view_colors_changed): New function that + notifies the year view that colors have changed. + + * gnome-month-item.h (struct _GnomeMonthItem): Added fields for + outline and day box colors. + + * gnome-month-item.c (gnome_month_item_set_arg): Added + outline_color, outline_color_gdk, day_box_color, and + day_box_color_gdk arguments to month items. These are convenient + to quickly set the colors of the month item. + (gnome_month_item_get_arg): Likewise. + + * main.[ch]: Added a global array of structures for color preferences. + +1998-08-31 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * goto.c: Small code cleanup. + (day_event): Upon receiving a LeaveNotify event, Reset the day's + background to the correct color. + +1998-08-29 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * mark.[ch]: New files with utility functions to mark calendars + with their events. + + * mark.c (mark_month_item): New public function to mark a month + item with events. + (unmark_month_item): New public function to unmark all the days in + a month item to their default appearance. + + * year-view.c (year_view_set): Use the new unmark_month_item() and + mark_month_item() to mark the months with events. + + * goto.c (update): New function that updates the calendar in the + Go-to dialog by marking the days. + + * timeutil.c (time_year_begin): Modified to take a time_t value. + (time_year_end): Likewise. + (time_month_begin): Actually implemented this function, which was + in the header file but not here. + (time_days_in_month): New public function that returns the number + of days in a month. + + * Makefile.am (gnomecal_SOURCES): Added mark.[ch] to the sources. + + * year-view.c (unmark_days): Use unmark_month_item(). + + * gncal-full-day.c (gncal_full_day_destroy): Fixed crash when + destroying the full day view. The full day's destroy method is + unusual in that it destroys the list of child widgets itself, as + it does not have a remove method, so it needs to reset the list to + NULL. + +1998-08-27 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gnome-month-item.c (build_month): Now does the correct thing + when the user wants weeks to start on Monday. Now all the Monday + special casing, as far as day numbering is concerned, is only in + this function. + + * year-view.c (mark_days): This function marks the days that have + events in them. It also fixes a memory leak in the old + implementation (it was leaking the whole list). + (unmark_days): New function used to unmark all the days in the + year view. + (mark_event): New function that marks all the days that are + spanned by a time range. It also fixes the bug in the old + implementation where it could possibly mark days past the ends of + the year (if the event crosses year boundaries, for example). + + * timeutil.c (time_year_begin): Take the year parameter since year + 1, not 1900. + (time_year_end): Likewise. + + * year-view.c (year_view_size_allocate): Now changing the size of + the calendars is done in the idle loop. + (idle_handler): This function actually does the resizing of the items. + + * year-view.h (struct _YearView): Added idle_id and need_resize + fields. + +1998-08-26 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * year-view.c: Beginning of the new year view. Sizing and event + marking needs to be finished. + + * gnome-cal.c: Updated for year-view. + (gnome_calendar_time_format_changed): Use year_view_time_format_changed(). + + * year-view.[ch]: Renamed the gncal-year-view.[ch] files to + year-view.[ch]. + + * Makefile.am (gnomecal_SOURCES): Updated year-view.[ch] in the + list of source files. + +1998-08-25 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * goto.c (create_days): Set the heading color of the month item. + + * main.c: Use GNOME_STOCK_PIXMAP_JUMP_TO, now that it exists, + instead of goto.xpm. Also, removed goto.xpm from cvs. + + * gnome-month-item.h (struct _GnomeMonthItem): Added fields for + the heading and day number fonts. Added fields for heading and + day number label colors. + + * gnome-month-item.c (gnome_month_item_class_init): ARG_DAY_NAMES + should be write-only. Also, added arguments for heading and day + number fonts. Added arguments for heading and day number colors. + +1998-08-24 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * prop.c (build_two_radio_group): Doh. Set the state of the radio + buttons properly. + + * month-view.c (month_view_time_format_changed): New public + function that notifies the month view of a time format change. + + * gnome-cal.c (gnome_calendar_time_format_changed): New public + function that notifies the calendar of a time format change. + + * main.c (time_format_changed): Use gnome_calendar_time_format_changed(). + + * month-view.c (month_view_update): New public function to update + the month view when an event changes. This is still unfinished. + (month_view_set): New public function to set the month in the + month view. + + * gnome-cal.c (gnome_calendar_direction): Add case for month view. + (gnome_calendar_set_view): Likewise. + (gnome_calendar_update_all): Likewise. + + * timeutil.c (time_add_week): Implemented the time_add_week() + function, which was on the header file. + (time_add_month): Added public month-adding routine. + + * gnome-cal.c (gnome_calendar_get_current_view_name): Add case for + month view. + (gnome_calendar_goto): Likewise, and set the time on the month view. + + * month-view.c (month_view_new): Now it takes the calendar plus + the time_t representing the month. + + * gnome-month-item.h: Added documentation on the object arguments + for the month item. + + * month-view.c (month_view_init): Added a month/year heading to + the month view. + + * TODO: Updated the TODO list a bit. + + * main.c (gnome_cal_file_menu): The preferences menu option should + go in the File menu. + (gnome_cal_edit_menu): Added stock pixmaps to the menu items. + (gnome_cal_menu): Renamed the Calendar menu to Edit. + (gnome_cal_help_menu): Use "About Gnomecal", not just "About". + + * prop.c (hour_activated): Notify the property box that it has changed. + + * main.c: Changed the Properties menu item to Preferences. These + are global application preferences, not a single calendar's + properties. + + * prop.c (prop_apply): Save the week_starts_on_monday flag to the + configuration file. + (properties): Added a check button for weeks starting on Monday. + (properties): Beautified the Preferences dialog. + + * month-view.c (month_view_init): + * goto.c (create_days): Set the month item to start weeks on + Monday if appropriate. + + * main.c (init_calendar): A boolean is not an hour, so don't + range_check_hour() on it. + (init_calendar): Added a global week_starts_on_monday flag. + + * main.h: Added global week_starts_on_monday flag. + +1998-08-21 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * calobj.c (ical_object_create_from_vobject): If mail alarm or + program alarm are missing the action, then set an empty default. + +1998-08-18 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gnome-month-item.c (gnome_month_item_day2index): New public + function to get the displayed day index of the specified date. + + * gnome-cal.c (gnome_calendar_goto_today): New public function to + jump to the current day. + + * goto.c (day_event): Jump to the selected day when the user + clicks the mouse, and prelight days as appropriate. + + * timeutil.c (time_from_day): New public function to build a + time_t from a year/month/day triplet. + + * gnome-month-item.c (gnome_month_item_num2child): + (gnome_month_item_child2num): New public functions to convert an + index into a child and vice-versa, respectively. + (gnome_month_item_num2day): New public function to convert a child + number into a displayed day number. + + * goto.c (goto_dialog): Doh, use gnome-dialog properly :-) + + * gnome-month-item.c (create_items): Use g_strdup()ed day names + from the start. + +1998-08-17 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * main.c (gnome_toolbar): Made it use goto.xpm. + + * Makefile.am (EXTRA_DIST): Added goto.xpm to the list of files. + +1998-08-13 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gnome-month-item.c (gnome_month_item_set_arg): Doh. Actually + recalculate the days using the month and year. + + * main.c: Added "Go to" button to quickly jump to a specific date. + + * goto.c: New file that defines the quick go-to date dialog. + + * Makefile.am (gnomecal_SOURCES): Added goto.c to the sources. + +1998-08-11 Nuno Ferreira <nmrf@rnl.ist.utl.pt> + + * main.c (new_calendar): Made title i18n friendly. This was bug + #215. + + * eventedit.c (ee_store_recur_end_to_ical): Set recur->enddate to + recur->_enddate, not to itself, when adding recurring event and + supplying an end date. This fixes (at least part of) bug #99. + +1998-08-10 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * month-view.[ch]: Start of the month view widget. This will use + the generic month item and extend it to have the semantics desired + for the gnomecal month view. + + * gnome-month-item.[ch]: New generic canvas item for the month + view and the "small calendars". This is intended to be a + high-level display engine for monthly calendars. This is a work + in progress. + + * gnome-cal.h (GnomeCalendar): Added a month_view field. + + * gnome-cal.c (setup_widgets): Create the month view and insert it + into the notebook. + + * Makefile.am: Added month-view.[ch] and gnome-month-item.[ch] to + the sources. + +1998-08-03 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * main.c (about_calendar_cmd): Use an array of const strings to + keep gcc happy. + + * alarm.c (alarm_compare_by_time): Use gconstpointer to keep gcc happy. + * calendar.c (calendar_object_compare_by_start): Likewise. + * gncal-full-day.c (child_compare_by_start): Likewise. + +1998-07-07 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * main.c: Add support for --view flag. + (session_save_state): Save the view mode; + (new_calendar): Now takes a view mode flag. + + * gnome-cal.c (gnome_calendar_get_current_view_name): New + function for enhancing the session management support for + gnomecal. + (gnome_calendar_set_view): New function that makes a given page + active. + +1998-07-01 Nuno Ferreira <nmrf@rnl.ist.utl.pt> + + * gncal.desktop: Added Portuguese translation. + +Mon Jun 22 13:01:16 1998 Havoc Pennington <hp@pobox.com> + + * main.c (session_save_state): Use gnome_geometry_string to get + the geometry string. + +1998-06-04 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * eventedit.c (ee_rp_init_rule): Do not subtract 1 from + tm->tm_mday for the default_day. + + * gnome-cal.c (gnome_calendar_new): + (gnome_calendar_goto): Use the start of the day -- things expect + it to be that way. + +1998-05-27 Nuno Ferreira <nmrf@rnl.ist.utl.pt> + + * eventedit.c (ee_store_recur_rule_to_ical): Fill in + ical->recur->interval from value in spin_button. This ixed an + infinnite loop. + +1998-05-30 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-full-day.c (child_draw): Paint the decorations correctly. + (child_draw_decor): Paint the recurrence/bell icons correctly. + +1998-05-25 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * eventedit.c (ee_rp_init_rule): Use the contents of + ee->ical->dtstart for computing the predefined values of the recurrence. + + * gncal-full-day.c (gncal_full_day_unrealize): Fix the gc + destruction in the unrealization code and fix the pixmap unrefing. + + * main.c (close_cmd): Remove a bad hack that disabled calendar + widget destruction. + + * calobj.c (ical_object_generate_events): Fix for the weekly event + generation. Was reported on the bug tracking system. + +1998-05-18 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gncal-full-day.c (layout_children): Implemented ultra-cool + layout for the events that share the same time range. Gals and + guys you can now drop Outlook on the recycle bin. + + Which reminds me. We do not have a recycle bin. How could that + happen in a project as cool as this one? Someone explain this to + me. + +1998-05-18 Federico Mena <federico@nuclecu.unam.mx> + + * gncal-full-day.c (paint_back): Eliminated unnecessary border repainting. + +Sun May 17 17:55:03 1998 Havoc Pennington <hp@pobox.com> + + * gncal-todo.c (simple_todo_editor): Close dialog when return is pressed. + +1998-05-15 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gnome-cal.c (mark_gtk_calendar_day): Bug free version of the + range computation in place. + + * gncal-year-view.c (year_view_mark_day): Use the same new version + of the range computation here. + + * calobj.c (ical_object_generate_events): Fix the begin/end + condition. + +1998-05-14 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * timeutil.c (isodate_from_time_t): Do not add the spurious + padding. + + * calobj.c (store_date_list): Bug fix: I was using the wrong + pointer when saving the exception date list. + (set_date_list): Bug fix: load correctly the complete exception + date list. + (set_date_list): Use ',' for the exception date separator as the + versit people can not get their standard right. + + * gncal-full-day.c (unrecur_appointment): Support for making an + existing recurrent event `movable' for a day. + + * calobj.c (ical_object_add_exdate): New routine, used to add + exception dates. + (ical_object_duplicate): New routine: used to do the magic + recur->no-recur event. + +1998-05-08 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gncal-full-day.c (new_appointment): Use gtk_calendar freeze/thaw + + * gncal-year-view.c (gncal_year_view_set_year): Use gtkcalendar freeze/thaw. + + * eventedit.c (event_editor_init): Use gnome_dialog_set_close to + avoid the ugly warning. + + * main.c (display_objedit): Default to the day the user is looking + at. + +1998-05-05 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gncal-day-panel.c (full_day_size_allocated): Do not emit a value + changed signal if the value is the same. + +1998-05-04 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * prop.c (prop_apply): Only run the apply code once. + +1998-05-03 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gncal-day-panel.c (update): Draw the day at startup. + (gncal_day_panel_set): Fix selected-day display. + (gncal_day_panel_new): Switch day on double clicks, not on single + clicks. + + * calobj.c (ical_object_compute_end): Removed debug messages. + +1998-04-30 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * prop.c (prop_apply): Do not call prop_cancel, ths is now using + GnomePropertyDialog. + +1998-04-29 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gncal-week-view.c (sync_week): Use gnome_calendar_tag_calendar. + + * gnome-cal.c (gnome_calendar_tag_calendar): New routine used to + fill a gtk_calendar with the events on a GnomeCalendar object. + + * gncal-week-view.c (gncal_week_view_new): Set the week to the day + we double clicked. + +1998-04-28 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gnome-cal.c (calendar_notify): Apply black magic to get mail + notifications to work. + + * gncal-full-day.c (child_focus_out): Temporary optimization, the + child_focus_out is constantly calling the + gnome_calendar_object_changed when the property editor has been + invoked. This happens every time the mouse moves crosses the main + window. + + * calendar.c (calendar_object_changed): Reschedule alarms when a + calendar object has changed its times. + +Sat Apr 25 22:20:45 1998 Havoc Pennington <hp@pobox.com> + + * eventedit.c, eventedit.h: Descend from GnomeDialog. Took vbox + out of class structure; use GnomeDialog vbox + instead. gnome_dialog_set_destroy instead of destroying in button + callbacks. Don't create buttons, separator, or vbox manually. + #include <libgnomeui/gnome-dialog.h>. + +1998-04-24 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * calobj.c (ical_object_create_from_vobject): Fixed alarm loading; + Load snooze time and snooze count + +1998-04-23 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * calendar.c (calendar_save): Actually save the to-do entries. + + * gncal-todo.c (simple_todo_editor): Now you can add and edit + to-do entries. + +1998-04-22 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-full-day.c: Made it use popup_menu(). + + * popup-menu.c: New file with utility functions for creating popup + menus. Maybe such a thing would be useful in libgnomeui, a la + gnome-app-helper? + + * Makefile.am (gnomecal_SOURCES): Added popup-menu.[ch] to the sources. + +1998-04-22 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * prop.c (properties): Added Calendar properties editor. + (properties): Make the code use a propery box. + + * main.c: Save/load properties (fix to old commit). + +1998-04-21 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-todo.c: New widget for editing TODO lists. This will be + worked on a lot. + + * Makefile.am (gnomecal_SOURCES): Added gncal-todo.[ch] to the sources. + + * gncal-day-panel.c: Make it use the new TODO widget. + +1998-04-21 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * timeutil.c (isodate_from_time_t): Do not save with the global + time flag (Z at the end of the isodate). When we figure out a way + to load times in GMT time, we will add this back + + * view-utils.c (popup_menu): Moved this routine here as there are + more users of this code. + + * gncal-day-view.c (gncal_day_view_class_init): Add button press + handler. + (new_appointment): New routine for creating appointments on a day. + + + + * main.c (save_ok): Added call to gtk_window_set_wmclass. + + * gncal-day-panel.c (calendar_day_selected): Fix, years for mktime + should substract 1900 and gtk_calendar stores years relative to + year 0. + + * gncal-week-view.c (gncal_week_view_new): Make the week view + descend from VBox so that we can add a label to it. + (gncal_week_view_set): Display the ending day of the week + correctly. + + Added a label that displays the week range. + +1998-04-21 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gnome-cal.c: Made it use GncalDayPanel. + + * gncal-day-panel.c: New widget for the day view in the main + calendar toplevel. It basically takes care of everything + gnome-cal did by hand with respect to the day view. + + * Makefile.am (gnomecal_SOURCES): Added gncal-day-panel.[ch] to + the rules. + + * main.c: Added a separator between the About menu item and the + help topics. + +1998-04-20 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * eventedit.c (ee_ok): Mark the event as non-new after accepting changes. + +1998-04-20 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-full-day.c (gncal_full_day_get_day_start_yoffset): New + public function that returns the y offset for the row + corresponding to the "day begin" time. + + * gncal-full-day.c (gncal_full_day_key_press): Now any printable + keystroke (not just Return) will activate the selected range. + + * gncal-full-day.c (paint_back): Made it use the new paint_row + function instead of painting everything directly. We calculate + areas in a smarter way so there is even less flicker than before, + especially when selecting regions. + + * eventedit.c: Sensitize recurrence widgets properly. + + * calobj.c (duration_callback): Pass the correct pointer type to + is_date_in_list(). + +1998-04-20 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * calobj.c (duration_callback): Take exception dates into + account. + + * gncal-full-day.c (new_appointment): Setup the event editor dates + to those of the currently displayed day. + (gncal_full_day_selection_range): Use sensible values in the case + no range is selected. + (new_appointment): Events now use the current day for event creation. + + * view-utils.c: Pretty up the time display. + + * calobj.c (ical_object_compute_end): Initialize + ico->recur->enddate, otherwise we loop forever during final date computation. + + * eventedit.c: Now recurrence is toggled by a radio button in the + recurrence page, as the checkbox is confusing. + + * calobj.c (is_date_in_list): Add support for the exclussion + dates. + +1998-04-18 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gncal-year-view.c (double_click): Fix this routine as well. + + * gncal-week-view.c (jump_to_day): Bind the gtkcalendar signals to + the week. + + * gncal-year-view.c (gncal_year_view_set_year): Put things in the + proper range. Now the year view actually matches this year. + + * gnome-cal.html: Added small documentation. + + * main.c: Add more icons to the menus; Rename some menubar + entries; Add `new' icon to the toolbar. + (dump_events): Added argument handling and dumping of events from + the command line. Extremely cool. + + * getdate.y: Taken from the CVS source code. Used for date + parsing in the command line. + + Internationalized getdate.y. Wee! It even works with spanish. + + * calobj.c (ical_object_to_vobject): Add Quoted printable property + to items containing new lines. + (duration): Use unsigned integers, to work around buggy calendar + files generated by korganizer. + + * main.c (save_calendar_cmd): Do not ask for file name if we are + saving. + (save_as_calendar_cmd): New command. + + +1998-04-17 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * alarm.c (alarm_kill, alarm_init, alarm_add): Implement the alarm + management framework. + +1998-04-17 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * calobj.c (ical_new): Added mandatory status property. + (ical_object_to_vobject): Only store "related" list if it exists. + (store_list): Add terminating null char and free the correct data. + + * main.c (save_calendar_cmd): Implemented calendar saving. + (open_calendar_cmd): Implemented calendar loading. + (new_calendar_cmd): Implemented calendar creation. + (new_calendar): Don't load our test calendar by default. + + * gncal-full-day.c (delete_appointment): Delete appointment implemented. + + * eventedit.c (ee_store_recur_values_to_ical): Free/create + ical's recurrence appropriately. + (ee_rp_init_rule): Initialize all missing parameters from ical. + (ee_rp_init_ending_date): Initialize missing fields from ical. + +1998-04-17 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gnome-cal.c (gnome_calendar_remove_object): Add support for + removing objects. + +1998-04-17 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * eventedit.c (ee_init_recurrence_page): New function that creates + the recurrence page in the toplevel notebook. + (ee_store_recur_values_to_ical): Now we can also store the recurrences. + +1998-04-17 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * calobj.c (ical_object_generate_events): Implement + RECUR_MONTHLY_BY_POS implemented. + (ical_object_create_from_vobject): Fix the alarm + initialization code. + (save_alarm): Save alarms. + (ical_object_generate_events): Fixed the recurrent code to take + into account the recur->endate field (if at all specified). + + (ical_object_to_vobject): Implement recurrence rule saving. + +1998-04-16 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * eventedit.c (ee_store_alarm): Use menu_shell->children, not + menu->children. Why does GtkMenu have a children field in the + object structure? + (check_dates): New function that insures that start_date < end_date. + (check_times): In addition to checking whether the event spans the + whole day, now it insures that start_time < end_time. + + * gncal-full-day.c (child_set_size): Now children get bigger + temporarily while they are focused. This allows the handles not + to "overlap" the rows used by the child and thus allow editing of + very thin events. + (recompute_motion): Fix for new child coordinates. + (gncal_full_day_expose): Make it use find_child_by_window() + instead of looking for it by hand. + + * bell.xpm recur.xpm: XPM files for events with alarm and + recurrence, respectively. + +1998-04-15 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-full-day.c (button_1): Preserve the up/down cursor while dragging. + + * gncal-full-day.c (child_draw): Now children have a vertical + handle as well. This can be used to move the child anytime, not + only when it is focused. + (recompute_motion): Modified for new drag behavior. + + * eventedit.c (ee_init_general_page): The general_owner may be + null. Do the proper thing when creating the label. + (ee_ok): Update the gnome calendar appropriately. + + * timeutil.h: + * gncal-year-view.h: Add some missing prototypes. + + * gncal-full-day.c (child_popup_menu): Set the sensitivity of menu + items according to whether the ical object is being edited or not. + + * eventedit.c (event_editor_new): Set the "being edited" flag on + the ical object (stored as the ical object's user data). + (event_editor_destroy): Release the flag. + + * calobj.h: The iCalObject structure now has a generic user_data pointer. + * calobj.c (ical_object_set_user_data ical_object_get_user_data): + Functions to set this data. + + * gncal-full-day.c (child_button_press): Do child popup menu correctly. + + * main.c (about_calendar_cmd): Fixed my address and added Arturo + to the authors in the about box. + + * gncal-full-day.c (find_child_by_window): Compare child's widget + windows by user_data (which will be the parent widget, that is, + the text widget). We cannot assume that child->widget->window + will be *the* window we are interested on because there may be + child widgets with multiple windows. + +1998-04-15 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * calobj.c (ical_foreach): Define iterator routine. + +1998-04-15 Arturo Espinosa Aldama <arturo@nuclecu.unam.mx> + + * gncal-year-view.[hc]: Now using time_t for new and set. + Random fixes, as well. + +1998-04-15 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-full-day.c (button_3): New popup menus activated with + mouse button 3. + (create_appointment): Create a new appointment from the popup + menus. See the FIXME. + +1998-04-15 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gncal-full-day.c (layout_kill_rows): Routine to destory rows + array properly. + + * gncal-year-view.c (gncal_year_view_new): Add missing year in + call to strftime. + + * calobj.c (ical_object_create_from_vobject): Fixed memory leaks + from the return values of versit's fakeCString. + +1998-04-14 Arturo Espinosa Aldama <arturo@nuclecu.unam.mx> + + * gncal-year-view.[hc]: New widget for the year view. + * Makefile.am: added required compilation of the new files. + +1998-04-14 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * eventedit.c (event_editor_setup_time_frame): Fixed some table + expansions to make the dialog look nicer when resized. + + * calobj.c (ignore_space): Fixed compiler warning about unused + computed value. + (ocurrencelist): Replace str by p confusion. Removed unused + variables value and q. + (daynumber): Fixed a couple of warnings about unused values. + (load_recurrence): Removed unused variable c. Added a default + clause to the switch(type). + + * eventedit.c (ee_rp_init_frequency): Removed unused variable content. + Fixed a compiler warning by adding a missing cast. + + * calobj.c (ical_object_create_from_vobject): Make the + load_recurrence() part work correctly. Eliminated use of + syntax_error variable. + +1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-full-day.c (child_key_press): Unfocus the child and focus + the parent fullday widget when the user presses Esc. + + * gncal-week-view.c (gncal_week_view_update): Now takes object and + flags parameters. + * gncal-day-view.c (gncal_day_view_update): Likewise. + * gncal-full-day.c (gncal_full_day_update): Likewise. + (child_focus_in): New function. In conjunction with + child_focus_out(), these only display the handles in the child + when it is focused. The result is that the user can see more of + the child's text when nothing is focused, and we can also display + fatter and nicer drag handles. + + * gnome-cal.c (gnome_calendar_object_changed): Now takes an + additional flags parameter + (gnome_calendar_update_all): Made function static. Now takes + changed object and flags parameters as well. + (gnome_calendar_object_changed): Now takes additional flags + parameter to indicate what changed in the specified object. + + * calobj.h (CalObjectChange): New enum with flags to describe what + has been changed in an object. + + * gncal-full-day.h: + * gncal-full-day.c (gncal_full_day_focus_child): New function to + let the outside world decide which child to focus. + (gncal_full_day_focus_child): Bleah. We have to synthesize a + click because GtkText will not set the cursor when you focus it. + + * gnome-cal.c (day_view_range_activated): Focus the new child in + the full day widget. + + * eventedit.c (event_editor_setup_time_frame): Re-aligned some + widgets to make it look prettier. + (ee_alarm_widgets): Likewise. + (ee_init_general_page): Likewise. + (ee_classification_widgets): Likewise. + (event_editor_init_widgets): Likewise. + + * gnome-cal.c (day_view_range_activated): Create new object and + add it to the calendar. You can now select a range in the + full-day view, hit Return, and a new event will be added at the + selected range. I still have to figure out how to focus this new child. + + * gncal-full-day.c (paint_back): Rewrote function to avoid + painting an area more than once -- eliminate flicker. + (paint_back_rows): New function that calls paint_back() only for + the area of the specified rows. + (gncal_full_day_button_press): + (gncal_full_day_button_release): + (gncal_full_day_motion): Made these functions use + paint_back_rows() instead of paint_back(), to eliminate flicker. Wheee! + +1998-04-12 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gnome-cal.c (setup_day_view): We now connect to the + range_activated signal of the fullday widget instead of catching + key presses ourselves. + (day_view_range_activated): New function that creates a new + iCalObject and inserts it into the calendar, not finished yet. + +1998-04-11 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-full-day.c (get_time_from_rows): New function, calculates + a pair of time_t values from the specified start and number of rows. + + * gncal-full-day.h (GncalFullDayClass): New signal + "range_activated". It is emitted when a range is selected and the + user hits Return. + (gncal_full_day_selection_range): New function, returns the + selected range. + + * gncal-full-day.c (struct drag_info): Moved selection information + to their own fields instead of sharing the child's drag fields. + This allows us to keep the selection when a child is moved. + (recompute_motion): Made the case when (row < di->sel_click_row) + work correctly. + +1998-04-11 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gnome-cal.c (gnome_calendar_goto): Add support for navigating + on the day view. + + * timeutil.c (time_start_of_day, time_end_of_day, time_day_hour): + New time manipulation functions. + + * eventedit.c (ee_rp_init_frequency): Add the different frequency + editors to a notebook. Make the notebook startup on the entry + selected recurrence type; + +1998-04-11 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-full-day.c (recompute_motion): Now we support selecting a + range in the main window (by clicking+dragging). It flickers + horribly and is not perfect, but it is a start. + +1998-04-09 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-full-day.c: #include <string.h> + + * gncal-full-day.c (child_map): Show instead of just map the child + widget (otherwise the text widget gets confused and will not focus). + + * calobj.c (ical_object_to_vobject): Quote chars as 'x', not "x". + + * calobj.h: Added prototype for ical_object_to_vobject(). + + * gnome-cal.c (gnome_calendar_object_changed): New function. This + should be called when a calendar object is changed. + + * gncal-full-day.c (update_from_drag_info): Call + gnome_calendar_object_changed() instead of updating manually. + + * calendar.c (calendar_add_object): + (calendar_remove_object): Set the modified flag to true. + + * gncal-full-day.c (gncal_full_day_draw): Finished implementing + this function. + +1998-04-08 Raja R Harinath <harinath@cs.umn.edu> + + * gncal.c (update_calendar): Say `#if 0', not `#ifdef 0'. + +1998-04-07 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * eventedit.c: Removed unused global variable parent_class. + + * eventedit.h: Renamed gtk_window field to window. + Made the parent_class field in the EventEditorClass structure be a + GtkWindowClass, not a gnome property box class. + Added prototype for event_editor_get_type(). + +1998-04-06 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-week-view.c (gncal_week_view_new): Use the new + gtk_table_set_homogeneous() instead of setting the variable directly. + +1998-04-03 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * eventedit.c (ee_create_ae): Make it return void. + (ee_alarm_widgets): Remove some unused variables. + (ee_store_alarm): Make it return void. + #include <string.h> + + * eventedit.h: #include "gnome-cal.h" + + * calobj.c (list_free): Don't use g_free in the g_list_foreach. + + * calendar.h: Add prototype for calendar_load(). + + * timeutil.h: Add prototypes for time_add_*(). + + * calendar.c: + * calobj.c: + * eventedit.c: + * gnome-cal.c: #include "timeutil.h" + + * gncal-day-view.c (gncal_day_view_size_request): Make the minimum + width equal or larger to the title width. + + * main.c: #include "eventedit.h" + (main): Add a return statement. + (new_calendar): Show stuff *after* the calendar has been loaded. + + * gnome-cal.c (gnome_calendar_load): Update the day view. + (setup_widgets): Hackish setup of a day view widget - will fix later. + (gnome_calendar_init): Initialize all fields. + + * gnome-cal.h: Added day_view field. Maybe this should be changed + when the a complete day view panel is complete. + + * gncal-day-view.c (gncal_day_view_update): Draw after update, not + before. + +1998-04-06 Carsten Schaar <nhadcasc@fs-maphy.uni-hannover.de> + + * versit/.cvsignore: New file. + +Fri Apr 3 22:31:54 1998 Tom Tromey <tromey@cygnus.com> + + * calendar.c: Include <config.h>. + +1998-04-03 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * timeutil.c (time_add_year, time_add_year, time_add_week): + Routines for time manipulation. + + * calobj.c (ical_object_destroy): Full destruction of the object. + + * eventedit.c: Finished the main event editor form; It still + lacks the details and the recurrence bits. It now adds events + and cancels. + +1998-04-03 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * view-utils.c (view_utils_draw_events): The "better" format + string for strftime() wasn't better, after all :-( + +1998-04-02 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-full-day.c: New full-day widget. It is still a work in + progress. It will be similar to M$ Schedule's nifty full day view + widget, but with Gtk's elegance :-) + + * Makefile.am (gnomecal_SOURCES): Added gncal-full-day.[ch] to the sources. + +1998-04-02 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * eventedit.c: Object editor widget. We dropped ObjEdit. + + * timeutil.c (time_from_isodate): Fix. + + * view-utils.c (view_utils_draw_events): Changed the display + formats. + +1998-04-02 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * view-utils.c (view_utils_draw_events): Use better format + specifier for strftime(). + (view_utils_draw_textured_frame): Ultra-nifty function to draw + textured "metal" frames, like Netscape's handles. + +1998-04-02 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * gncal-day-view.c (gncal_day_view_update): Day events are now + cached inside the widget. They get initialized at this time. + + * view-utils.c (view_utils_draw_events): Use the list of events. + +1998-04-02 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-day-view.c (gncal_day_view_set_shadow): New customization + function. We can't decide on a stupid border type :-) + (gncal_day_view_init): Made GTK_SHADOW_ETCHED_IN be the default + shadow type. Looks good. + +1998-04-02 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * main.c: New main program that uses our new datatypes and + objects. + + * calendar.c (calendar_load_from_vobject, calendar_load): + Implement loading of vCalendar objects and vCalendar files. + + * calobj.c (ical_object_create_from_vobject): Implement loading of + vCalendar event and todo objects. + + * timeutil.c (isodate_from_time_t): New function. + + * gnome-cal.c, gnome-cal.h: Implement a toplevel widget, derived + from GnomeApp. It holds all of the day views and arbitrates the + display. + +1998-04-02 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-week-view.[ch]: New week view composite widget. This + provides a full week view (7 day views plus busy time display -- + the latter is currently unimplemented). + +1998-04-01 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal-day-view.c: New day view widget. It is intended to be a + child widget of the week view composite widget. + + * calendar.c (calendar_get_objects_in_range): + (calendar_get_events_in_range): + (calendar_get_journal_in_range): + (calendar_get_journal_in_range): These functions now take a + sort_func parameter, which is of type GCompareFunc. If the + specified value is non-NULL, it will return a sorted list. + Otherwise, it will return an unordered list. + (calendar_compare_by_dtstart): Provide a generic sorting routine + for calendar objects. + +1998-04-01 Miguel de Icaza <miguel@kernel.org> + + * Start from scratch + +Tue Mar 31 23:46:50 1998 Tom Tromey <tromey@cygnus.com> + + * timeutil.c (format_simple_hour): `buf' now static. + +1998-03-31 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal.c: Removed #include "gtkcalendar.h", because it now comes + from libgnomeui. + + * Makefile.am (gncal_SOURCES): Added new source files to the rules. + + * timeutil.c (format_simple_hour): New function, formats an + hour/am_pm pair into a string of the form "3am", "12pm", "05h", + "19h", etc. It is used by the day view widget for its labels. + +1998-03-31 Craig Small <csmall@small.dropbear.id.au> + + * Now has (non working) session maangement + * Uses a clist for the dailylist like gtt + +Sat Mar 21 15:43:20 1998 Tom Tromey <tromey@cygnus.com> + + * gncal.c: Use gnome_message_box_*, not gnome_messagebox_*. + +1998-03-12 Craig Small <csmall@small.dropbear.id.au> + + * Now linked (in some horrible way) to the gtkcalendar widget. + +Sun Mar 8 16:38:10 1998 Tom Tromey <tromey@cygnus.com> + + * Makefile.am (INCLUDES): Added GNOME_INCLUDEDIR. + (gncal_LDADD): Don't include libsupport.a. + + * gncal.c (main): Use new gnome_init. + +1998-02-19 Federico Mena Quintero <federico@nuclecu.unam.mx> + + * gncal.c (main): Added app_id "gncal". + +1998-02-19 Carsten Schaar <nhadcasc@fs-maphy.uni-hannover.de> + + * Makefile.am (gncal_LDADD): Added '$(INTLLIBS)' + +1998-02-18 Raja R Harinath <harinath@cs.umn.edu> + + * Makefile.am (gncal_LDADD): Include `libsupport.a'. + + * calcs.c (month_atoi): Replace buggy explicit loop string compare + with strcasecmp. + (day_atoi): Likewise. + +Sun Jan 25 23:38:30 1998 Miguel de Icaza <miguel@nuclecu.unam.mx> + + * menus.c: Replace "Quit" with "Exit". |