aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/cal-util/cal-component.h
Commit message (Collapse)AuthorAgeFilesLines
* This commit was manufactured by cvs2svn to create tagGNOME_LIBS_1_4_1_4nobody2001-05-231-361/+0
| | | | | | 'GNOME_LIBS_1_4_1_4'. svn path=/tags/GNOME_LIBS_1_4_1_4/; revision=9929
* Split the event and task editors into different objects for the separateFederico Mena Quintero2001-05-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* keep list of all Tasks folders so we can update the preference settingsDamon Chaplin2001-03-051-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Oops, that shouldn't have gone inJP Rosevear2001-02-071-1/+0
| | | | svn path=/trunk/; revision=8021
* Match new append_alarm signature (reminder_to_comp_object): only addJP Rosevear2001-02-071-0/+1
| | | | | | | | | | | | | | | | 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
* get the new reminder widgets (sync_entries): different callback dataJP Rosevear2001-02-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* create a new cal component alarm (cal_component_add_alarm): add alarm toJP Rosevear2001-01-191-2/+8
| | | | | | | | | | | | | | | | | | | | | | 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/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-31/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* This is to make things work with libical 0.21helix1 and later. WarningsFederico Mena Quintero2000-12-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Upgrade of the alarm framework. We now access alarms by a uniqueFederico Mena Quintero2000-11-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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
* added _click-to-add-message, though I'm not sure if i18n will work.Damon Chaplin2000-10-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-6/+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/+2
| | | | | | | | | | | | | | | | | | | | | 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/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/+6
| | | | | | | | | | | | | | | | | | | | | | 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
* stubs for pilot id accessors (cal_component_get_pilot_status):Seth Alves2000-08-121-0/+6
| | | | | | | | | | | | | | * 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-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/+31
| | | | | | | | | | | | | | | | | | | | | 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/+2
| | | | | | | | | | | | | 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-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1/+1
| | | | | | | | | | | | | | | 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/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Ahem, be consistent with parameter names - FedericoFederico Mena Quintero2000-07-271-2/+2
| | | | svn path=/trunk/; revision=4354
* Put all the functions used to free returned values all together.Federico Mena Quintero2000-07-271-10/+13
| | | | | | | | | | | | | | | | | 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-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Free the icalcomponent if this is an unattached alarm.Federico Mena Quintero2000-07-191-0/+27
| | | | | | | | | | | | 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-0/+22
| | | | | | | | | | | | | | | | | | | 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-6/+23
| | | | | | | | | | | | | | | | | | | | 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-0/+4
| | | | | | | | | | | | | | | | | | | | | | 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-0/+3
| | | | | | | | | | | | | | | | | | 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-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | 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-9/+12
| | | | | | | | | | | | | | 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-9/+13
| | | | | | | | | | | | | | | | | | | | | | | | 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-0/+4
| | | | | | | | | | | | | | 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-2/+21
| | | | | | | | | | | | | | | | | | | | 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-2/+24
| | | | | | | | | | | | | | | 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-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/+89
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