aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/cal-util/cal-component.c
Commit message (Collapse)AuthorAgeFilesLines
* This commit was manufactured by cvs2svn to create tagguikachu-1_2_3nobody2002-05-161-5214/+0
| | | | | | 'guikachu-1_2_3'. svn path=/tags/guikachu-1_2_3/; revision=16902
* make the range datetime member a struct not a pointerJP Rosevear2002-05-151-3/+3
| | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=16785
* use get_real_item (get_refresh_options): uncomment out (get_real_item):JP Rosevear2001-12-181-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=15136
* if we have an alarm that can be represented on the pilot, set theJP Rosevear2001-12-091-14/+24
| | | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=14943
* updated code to handle DATE values.Damon Chaplin2001-10-301-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=14456
* Use an EMessageBox instead of a gnome_dialog_question so that the labelFederico Mena Quintero2001-10-301-0/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=14446
* Fixing the license text.Ettore Perazzoli2001-10-281-4/+3
| | | | svn path=/trunk/; revision=14214
* when iterating over the subcomponents, use 'subcomp' rather thanDamon Chaplin2001-10-251-0/+89
| | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=13992
* make sure we free all the CalComponentDateTime's when we are finished.Damon Chaplin2001-10-241-13/+32
| | | | | | | | | | | | 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. svn path=/trunk/; revision=13957
* added setDefaultTimezone() method.Damon Chaplin2001-10-231-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=13920
* new functionsRodrigo Moya2001-10-191-0/+66
| | | | | | | | | 2001-10-18 Rodrigo Moya <rodrigo@ximian.com> * cal-util/cal-component.[ch] (cal_component_get_location): (cal_component_set_location): new functions svn path=/trunk/; revision=13758
* fix logic checksJP Rosevear2001-10-101-0/+22
| | | | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=13552
* util function to get address (itip_addresses_get_default): get only theJP Rosevear2001-10-101-8/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=13525
* for each call back, removes the alarms (cal_component_remove_all_alarms):JP Rosevear2001-09-171-0/+35
| | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=12897
* use ical partstat, role, cutypes directlyJP Rosevear2001-09-141-131/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=12806
* Handle the new icalattach type instead of struct icalattachtype.Federico Mena Quintero2001-09-111-10/+6
| | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=12749
* added support for the Contacts field. Note that I'm not sure what weDamon Chaplin2001-08-151-0/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=12039
* added 'different_timezone' fields to EDayViewEvent and EWeekViewEvent, toDamon Chaplin2001-08-071-41/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=11717
* started some code to show the currently displayed dates in the folderDamon Chaplin2001-07-311-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=11494
* don't show the time in the EDateEdit widget for adding EXDATEs.Damon Chaplin2001-07-181-2/+0
| | | | | | | | | | | | | 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. svn path=/trunk/; revision=11193
* more timezone updates. I'm pretty much done with the calendar code now,Damon Chaplin2001-07-111-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10984
* Add new columns for information specification (meeting_page_destroy): saveJP Rosevear2001-07-041-1/+1
| | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=10777
* New files with the alarm options dialog; this configures theFederico Mena Quintero2001-07-031-2/+7
| | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10731
* cal-client/cal-client.[hc] cal-util/cal-component.cDamon Chaplin2001-07-031-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10729
* Support for ATTACH, DESCRIPTION properties in alarm components.Federico Mena Quintero2001-07-031-84/+233
| | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10714
* Support for repeat/duration properties in alarm components.Federico Mena Quintero2001-07-031-0/+74
| | | | | | | | | | | | | | | | | | | | | | 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". svn path=/trunk/; revision=10706
* implementJP Rosevear2001-07-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=10697
* Update the copyrights, replacing Helix Code with Ximian andEttore Perazzoli2001-06-231-1/+1
| | | | | | helixcode.com with ximian.com all over the place. svn path=/trunk/; revision=10440
* itip/imip send dialogJP Rosevear2001-06-201-1/+607
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=10299
* Split the event and task editors into different objects for the separateFederico Mena Quintero2001-05-171-83/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=9861
* free the alarm component if it doesn't have a parent, rather than if itJP Rosevear2001-05-091-1/+1
| | | | | | | | | | | | | 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) svn path=/trunk/; revision=9720
* unref the calcomponent when we're done with itJP Rosevear2001-05-041-8/+12
| | | | | | | | | | | | 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 svn path=/trunk/; revision=9670
* the value type should be inited with ICAL_VALUE_* rather than ICAL_*_VALUEJP Rosevear2001-04-271-3/+3
| | | | | | | | | | 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. svn path=/trunk/; revision=9611
* the libical action stuff uses enums rather than strings to enumerate theJP Rosevear2001-04-181-15/+29
| | | | | | | | | | | 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 svn path=/trunk/; revision=9429
* keep list of all Tasks folders so we can update the preference settingsDamon Chaplin2001-03-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=8549
* fill in new classification stuff properly (get_widgets): load new class.JP Rosevear2001-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=8132
* If the categories string is empty, remove the property (get_period_list):JP Rosevear2001-02-071-11/+11
| | | | | | | | | | | | 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 svn path=/trunk/; revision=8023
* Oops, that shouldn't have gone inJP Rosevear2001-02-071-10/+0
| | | | svn path=/trunk/; revision=8021
* Match new append_alarm signature (reminder_to_comp_object): only addJP Rosevear2001-02-071-0/+10
| | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=8020
* Set the time and duration values in the trigger to null by defaultJP Rosevear2001-02-061-1/+3
| | | | | | | | | | | 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 svn path=/trunk/; revision=8005
* get the new reminder widgets (sync_entries): different callback dataJP Rosevear2001-02-061-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=8003
* libical import cleanupJP Rosevear2001-01-241-3/+3
| | | | | | | | 2001-01-23 JP Rosevear <jpr@ximian.com> * libical import cleanup svn path=/trunk/; revision=7753
* create a new cal component alarm (cal_component_add_alarm): add alarm toJP Rosevear2001-01-191-39/+137
| | | | | | | | | | | | | | | | | | | | | | 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> * README: Update package requirements svn path=/trunk/; revision=7647
* gui/e-week-view*.c don't use the theme colors at all within the graphicalDamon Chaplin2001-01-181-0/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=7593
* Ximianified email addresses and copyrights.Federico Mena Quintero2001-01-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=7571
* get categories button (init_widgets): listen for button clickJP Rosevear2001-01-061-48/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=7268
* Fix confusion in the way the range is expanded.Federico Mena Quintero2000-12-201-100/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=7083
* Alarm instance generation support for the Wombat.Federico Mena Quintero2000-12-191-84/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=7076
* Even though icaltime_from_timet() now properly ignores the is_utc argumentFederico Mena Quintero2000-12-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=6995
* Constify for new libical API. (set_text_list): Likewise.Federico Mena Quintero2000-12-131-2/+2
| | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=6943
* This is to make things work with libical 0.21helix1 and later. WarningsFederico Mena Quintero2000-12-121-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=6932
* Fixes bug #920.Federico Mena Quintero2000-12-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=6828
* Upgrade of the alarm framework. We now access alarms by a uniqueFederico Mena Quintero2000-11-301-35/+218
| | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=6713
* DOH, fixed reversed test for the presence of the icalcomp's parent. ThisFederico Mena Quintero2000-11-251-1/+1
| | | | | | | | | | | | 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. svn path=/trunk/; revision=6661
* These changes fix bugzilla bugs #874 and #875.Federico Mena Quintero2000-11-091-68/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=6517
* This is the new recurrence page, partially finished. I just want it on CVSFederico Mena Quintero2000-10-271-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the new recurrence page, partially finished. I just want it on CVS for if my laptop explodes. This is highly disgusting code. It has to discriminate between the recurrence types we support and the ones we do not. I hate iCalendar. I hate it more than Hi-Fi\'s pizza. 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. svn path=/trunk/; revision=6219
* added more (working) integration with theJesse Pavel2000-10-211-6/+0
| | | | | | meeting schedular. svn path=/trunk/; revision=6096
* added _click-to-add-message, though I'm not sure if i18n will work.Damon Chaplin2000-10-201-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=6063
* Remove pilot cruft. All pilot stuff is in the conduits now and uses theJP Rosevear2000-10-161-169/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=5940
* set the height of the scrolled window for the description field, since theDamon Chaplin2000-09-251-0/+46
| | | | | | | | | | | | | | | | | | | | | 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'. svn path=/trunk/; revision=5562
* changed to use EDateEdit.Damon Chaplin2000-09-111-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=5305
* Use cal component pilot stuff properly (find_record_in_repository): RemoveJP Rosevear2000-09-101-13/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=5298
* Use new convenience functions and only get the recurrence stuff if needed.JP Rosevear2000-09-061-0/+74
| | | | | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=5219
* Free the data, not the list element.JP Rosevear2000-09-061-1/+1
| | | | | | | | | 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. svn path=/trunk/; revision=5203
* Update for libical 0.19JP Rosevear2000-08-251-1/+1
| | | | | | | | 2000-08-24 JP Rosevear <jpr@helixcode.com> * Update for libical 0.19 svn path=/trunk/; revision=5024
* Remove status barJP Rosevear2000-08-241-1/+0
| | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=4995
* Added the cal-util library to the documentation framework - FedericoFederico Mena Quintero2000-08-151-5/+2
| | | | svn path=/trunk/; revision=4839
* stubs for pilot id accessors (cal_component_get_pilot_status):Seth Alves2000-08-121-0/+60
| | | | | | | | | | | | | | * 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 svn path=/trunk/; revision=4767
* Generate a prettier string for the geographical position.Federico Mena Quintero2000-08-121-2/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=4763
* Handle the PERCENT-COMPLETE property. (free_icalcomponent): Likewise.Federico Mena Quintero2000-08-121-0/+172
| | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=4745
* New function. (cal_component_get_icalcomponent): Ensure that the SEQUENCEFederico Mena Quintero2000-08-081-0/+35
| | | | | | | | | | | | | 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. svn path=/trunk/; revision=4589
* Big sync. Disable calendar compilation for a few hours - FedericoFederico Mena Quintero2000-08-081-5/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=4585
* New files for the iCalendar file backend.Federico Mena Quintero2000-08-031-7/+26
| | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=4479
* OK, it seems that we have all the interesting properties for single-userFederico Mena Quintero2000-07-271-0/+217
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=4361
* Put all the functions used to free returned values all together.Federico Mena Quintero2000-07-271-199/+336
| | | | | | | | | | | | | | | | | 2000-07-26 Federico Mena Quintero <federico@helixcode.com> * 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. svn path=/trunk/; revision=4353
* New function. (scan_property): Handle the RDATE property. (scan_period):Federico Mena Quintero2000-07-261-83/+293
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=4336
* Finish filling the trigger. What a pain, again.Federico Mena Quintero2000-07-201-6/+77
| | | | | | | | | | 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. svn path=/trunk/; revision=4232
* Free the icalcomponent if this is an unattached alarm.Federico Mena Quintero2000-07-191-1/+146
| | | | | | | | | | | | 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. svn path=/trunk/; revision=4216
* New internal represntation for alarm components. We really don't map themFederico Mena Quintero2000-07-151-1/+186
| | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=4173
* Handle the COMPLETED property. (free_icalcomponent): Ditto.Federico Mena Quintero2000-07-121-24/+241
| | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=4101
* Handle the SEQUENCE property. (free_icalcomponent): Ditto.Federico Mena Quintero2000-07-081-1/+104
| | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=3957
* Handle the LAST-MODIFIED property. (free_icalcomponent): Ditto.Federico Mena Quintero2000-07-071-20/+103
| | | | | | | | | | | | | | | | | | 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(). svn path=/trunk/; revision=3936
* Handle the CREATED property. (free_icalcomponent): Ditto.Federico Mena Quintero2000-07-071-117/+291
| | | | | | | | | | | | | | | | | | | | | | | | | 2000-07-06 Federico Mena Quintero <federico@helixcode.com> * 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. svn path=/trunk/; revision=3934
* Use CalComponentText instead of CalComponentPropSummary. Removed theFederico Mena Quintero2000-07-041-2/+108
| | | | | | | | | | | | | | 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. svn path=/trunk/; revision=3880
* Renamed from cal_component_free_description_list(). We can share thisFederico Mena Quintero2000-07-041-244/+335
| | | | | | | | | | | | | | | | | | | | | | | | 2000-07-03 Federico Mena Quintero <federico@helixcode.com> * 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. svn path=/trunk/; revision=3875
* Handle CATEGORIES. This can appear multiple times, so we maintain a list.Federico Mena Quintero2000-07-031-24/+230
| | | | | | | | | | | | | | 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. svn path=/trunk/; revision=3868
* Handle date/time and timezone pairs. (scan_property): Handle DTSTART andFederico Mena Quintero2000-07-021-10/+281
| | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=3857
* Handle the DESCRIPTION property. There can be multiple descriptions withFederico Mena Quintero2000-07-011-38/+219
| | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=3845
* Get an EvolutionShellClient instead of an Evolution_Shell to match theEttore Perazzoli2000-06-301-87/+297
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-06-29 Ettore Perazzoli <ettore@helixcode.com> * notes/component-factory.c (owner_set_cb): Get an EvolutionShellClient instead of an Evolution_Shell to match the changes in libeshell. 2000-06-29 Peter Williams <peterw@helixcode.com> * configure.in: Re-enable GNOME_PILOT_CHECK. Change AC_MSG_CHECKING([For...]) to [for...]. It's the little things that matter. 2000-06-28 Ettore Perazzoli <ettore@helixcode.com> * configure.in: `AM_PATH_GCONF'. 2000-06-27 Peter Williams <peterw@curious-george.helixcode.com> * configure.in (ctime_r): Check for whether ctime_r takes two (Linux) or three (Solaris) arguments. (AC_OUTPUT): Don't create notes/Makefile twice. * acconfig.h: Add CTIME_R_THREE_ARGS to the list. svn path=/trunk/; revision=3821
* New files for the new iCalendar component object. Today's properties:Federico Mena Quintero2000-06-291-0/+386
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. svn path=/trunk/; revision=3786