aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/cal-util
Commit message (Collapse)AuthorAgeFilesLines
* when the user types in a new event, don't create it until the user hitsDamon Chaplin2000-10-054-421/+316
| | | | | | | | | | | | | | | | | | | 2000-10-05 Damon Chaplin <damon@helixcode.com> * gui/e-day-view.c: * gui/e-week-view.c: when the user types in a new event, don't create it until the user hits Return or switches focus. Removed the editing_new_event flags. * cal-util/test-recur.c: rewritten to work on ics files. Now I can start testing the recurrence code. * cal-util/cal-recur.c: a few fixes. * gui/e-day-view.c (e_day_view_check_if_new_event_fits): fixed to return TRUE for long events, not FALSE. svn path=/trunk/; revision=5729
* updated to support RDATE end times or durations. Note that if you have twoDamon Chaplin2000-09-303-118/+237
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-09-29 Damon Chaplin <damon@helixcode.com> * cal-util/cal-recur.c: updated to support RDATE end times or durations. Note that if you have two RDATEs with the same start times, but with different end dates/durations set, the results are unpredictable. So the event editor dialog should check for this. * gui/e-week-view-main-item.c (e_week_view_main_item_draw_day): make strftime() strings translatable, and changed the formats a bit. * NOTE: someone needs to check print.c to make sure strftime strings are OK for i18n. * gui/e-day-view.h: Changed EDayViewDateFormat enum. We now try to include the weekday if possible. Also changed EDayView struct so we store the month & weekdays with the longest names rather than the actual widths. This helps i18n. * gui/e-day-view.c (e_day_view_recalc_cell_sizes): used _() for strftime strings, tried to see if weekday fits, and rearranged a bit to make i18n easier. * gui/e-day-view-top-item.c (e_day_view_top_item_draw): used _() for strftime strings, and updated to use new formats. * gui/calendar-model.c: added use_24_hour_format boolean to CalendarModelPrivate so we can display dates in 12-hour format if requested. This meant adding a CalendarModel argument to a few functions. Also added get/set functions to set use_24_hour_format. I suppose ideally we should have an ECellDate renderer and this option should go there. svn path=/trunk/; revision=5646
* set the height of the scrolled window for the description field, since theDamon Chaplin2000-09-254-152/+453
| | | | | | | | | | | | | | | | | | | | | 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
* Add some other cases where a slow sync is in order (pre_sync): Pre loadJP Rosevear2000-09-202-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-09-19 JP Rosevear <jpr@helixcode.com> * conduits/todo/todo-conduit.c (check_for_slow_setting): Add some other cases where a slow sync is in order (pre_sync): Pre load the uids, the map and the add/mod/del lists (match_record): Use the map hash to match records (iterate): Iterate using the pre-loaded uid list (iterate_specific): Iterate using the add/mod/del lists (purge): Delete all entries in the del list (set_status): Set status by adding to an appropriate list (set_pilot_id): Set pilot_id by updating map hash * conduits/todo/todo-conduit.h: Add lists for added, modified and deleted objects * conduits/todo/todo-conduit.c (map_name): Get the pilot_id->uid map file name (map_sax_start_element): SAX handler to extract a pilot_id->uid mapping (map_sax_parse): Parse the given file and build a pilot_id->uid hash (map_write_foreach): Write out individual mapping elements (map_write): Write out the pilot_id->uid mapping (start_calendar_server_cb): Rename from gnome_calendar_load_cb * conduits/todo/todo-conduit-config.h: Rename pilotID to pilot_id * conduits/todo/e-todo.conduit.in: A little renaming * conduits/todo/Makefile.am: Fix build slightly * pcs/cal.c (build_change_seq): Build a corba sequence out of a list of CalObjChanges (Cal_get_objects_in_range): Implement new corba function * pcs/cal-backend.c (cal_backend_init): Intiliaze to NULL (cal_backend_load): Track the uri so we can write the log file to the same place (cal_backend_log_name): Figure out the log filename/path based on the calendar uri (cal_backend_set_node_timet): Set an xml node property value from a time_t (cal_backend_log_entry): Adds a log entry to list waiting to be written out (cal_backend_log_sync): Syncs the log entries to disk (cal_backend_log_sax_start_element): SAX callback for reading in log entries (cal_backend_log_sax_end_element): ditto (cal_backend_log_sax_parse): Main SAX parser call to parse the log file looking for particular log entries and creating a CalObjChange hash with the last change for each object (cal_backend_get_log_entries): Returns a hash of objects of a given type changed since the given time (cal_backend_update_object): Add appropriate log entries (cal_backend_remove_object): ditto (cal_backend_get_changed_uids): Implement new idl interface call (cal_backend_foreach_changed): Convert CalObjChange hash into a list * pcs/cal-backend-imc.[hc]: Remove crufty files * pcs/cal-backend-file.c (cal_backend_file_get_type_by_uid): New function that returns the CalObjType for a uid. * cal-client/cal-client.h: Update prototypes. * cal-client/cal-client.c (build_change_list): Build a list of CalObjChange items from a corba sequence. (cal_client_get_changed_uids): New accessor method for the similarly named addition to the idl file. * cal-util/cal-util.h: Update prototypes and add CalObjChangeType enum. * cal-util/cal-util.c (cal_obj_change_list_free): New utility method to free a list of CalObjChange objects. * idl/evolution-calendar.idl: Add get_changed_uids method and associated types. svn path=/trunk/; revision=5512
* changed to use EDateEdit.Damon Chaplin2000-09-112-0/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-102-17/+156
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fixed some warnings.Christopher James Lahey2000-09-091-0/+2
| | | | | | | | | | 2000-09-08 Christopher James Lahey <clahey@helixcode.com> * cal-util/cal-recur.c, gui/e-day-view.c, gui/e-week-view.c, gui/event-editor.c, gui/getdate.y, gui/gncal-todo.c, gui/gnome-cal.c, gui/dialogs/task-editor.c: Fixed some warnings. svn path=/trunk/; revision=5264
* Use new cal_component_has_recurrences convenience functionJP Rosevear2000-09-061-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-09-06 JP Rosevear <jpr@helixcode.com> * gui/e-day-view-main-item.c (e_day_view_main_item_draw_day_event): Use new cal_component_has_recurrences convenience function * gui/e-week-view.c (e_week_view_show_popup_menu): ditto * gui/e-week-view-event-item.c (e_week_view_event_item_draw_icons): ditto * gui/calendar-model.c (calendar_model_value_at): ditto (calendar_model_value_at): ditto * gui/e-day-view.c (e_day_view_on_event_click): ditto (e_day_view_on_event_right_click): ditto (e_day_view_on_top_canvas_motion): ditto (e_day_view_on_top_canvas_motion): ditto (e_day_view_on_main_canvas_motion): ditto (e_day_view_on_main_canvas_motion): ditto (e_day_view_reshape_day_event): ditto * gui/e-day-view-top-item.c (e_day_view_top_item_draw_long_event): ditto * gui/e-day-view.c (e_day_view_on_long_event_click): ditto svn path=/trunk/; revision=5220
* Use new convenience functions and only get the recurrence stuff if needed.JP Rosevear2000-09-063-8/+94
| | | | | | | | | | | | | | | | | | | | | | 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
* Kill all exdates if there are no dates in the boxJP Rosevear2000-09-061-1/+39
| | | | | | | | | | | | | | | | | | | | | | | | | 2000-09-05 JP Rosevear <jpr@helixcode.com> * gui/event-editor.c (dialog_to_comp_object): Kill all exdates if there are no dates in the box * cal-util/cal-recur.c (generate_instances_for_year): Add a special case for when there are exceptions but no rrules or rdates. (cal_obj_remove_exceptions): Use date only compare func (cal_obj_date_only_compare_func): New compare function that compares the date only, not the time. * gui/event-editor.c (dialog_to_comp_object): Need a break for the yearly recurrence type (dialog_to_comp_object): We need to allocate icaltimetypes for the exdate list (fill_widgets): Handle a weekly recurrence with no particular day set (dialog_to_comp_object): Kill all rrules if "None" is selected as the recurrence type by the user svn path=/trunk/; revision=5218
* The exdate and rdate lists are a list of icaltimetypes, notJP Rosevear2000-09-061-12/+10
| | | | | | | | | | | | | | 2000-09-05 JP Rosevear <jpr@helixcode.com> * cal-util/cal-recur.c (generate_instances_for_year): The exdate and rdate lists are a list of icaltimetypes, not CalComponentPeriods *gui/e-day-view.c (e_day_view_on_delete_occurrence): The exdate list is a list of icaltimetypes, not CalComponentDateTimes svn path=/trunk/; revision=5211
* 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
* Compute the event duration using the event start/end times, not theJP Rosevear2000-09-061-13/+12
| | | | | | | | | | 2000-09-05 JP Rosevear <jpr@helixcode.com> * cal-util/cal-recur.c (cal_recur_generate_instances): Compute the event duration using the event start/end times, not the interval times. svn path=/trunk/; revision=5199
* Check to see if r->enddate is (time_t)-1 and set to 0 if soJP Rosevear2000-09-061-0/+2
| | | | | | | | | 2000-09-05 JP Rosevear <jpr@helixcode.com> * cal-util/cal-recur.c (cal_recur_from_icalrecurrencetype): Check to see if r->enddate is (time_t)-1 and set to 0 if so svn path=/trunk/; revision=5198
* We don't need AC_PROG_RANLIB and AM_PROG_LIBTOOLJP Rosevear2000-09-011-2/+1
| | | | | | | | | | | | | | | | | | | | | | | 2000-09-01 JP Rosevear <jpr@helixcode.com> * configure.in: We don't need AC_PROG_RANLIB and AM_PROG_LIBTOOL * src/libical/icalyacc.y (clear_recur): Explicitly set the week_start to the Monday default in case the recurrence rule does not. 2000-09-01 JP Rosevear <jpr@helixcode.com> * gui/event-editor.c: Make toolbar save and close button. We should put a similar menu option in sometime. 2000-08-31 JP Rosevear <jpr@helixcode.com> * cal-util/cal-recur.c (array_to_list): Use ICAL_RECURRENCE_ARRAY_MAX instead of MAX_SHORT svn path=/trunk/; revision=5164
* New function. We need this from code that dynamically updates from aFederico Mena Quintero2000-08-292-26/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-08-28 Federico Mena Quintero <federico@helixcode.com> * cal-client/cal-client.c (cal_client_is_loaded): New function. We need this from code that dynamically updates from a client and could not have connected to the "cal_loaded" signal right after the client was created. * gui/calendar-model.c (load_objects): Do not try to load the objects if the client has not been loaded yet. (cal_loaded_cb): Check the status value. * gui/calendar-model.h (CalendarModel): Declare the private structure here so that gdb will give me love. * pcs/cal-factory.h (CalFactory): Likewise. * pcs/cal.h (Cal): Likewise. * cal-client/cal-listener.h (CalListener): Likewise. * cal-client/cal-client.h (CalClient): Likewise. * pcs/cal-backend.h (CalBackend): This no longer has a private structure, so remove it. * cal-util/Makefile.am (libcal_util_la_SOURCES): Removed the vCalendar and old iCalendar cruft. (libcal_utilinclude_HEADERS): Likewise. Removed the obsolete iCalendar test program. svn path=/trunk/; revision=5091
* We no longer need time_from_icaltimetype as libical has the API for thisJP Rosevear2000-08-293-37/+5
| | | | | | | | | | | | | | | | | | | | 2000-08-28 JP Rosevear <jpr@helixcode.com> * cal-util/timeutil.h: We no longer need time_from_icaltimetype as libical has the API for this * cal-util/timeutil.c: ditto * cal-util/cal-recur.c: Replace time_from_icaltimetype with icaltime_as_timet * gui/calendar-model.c: ditto * gui/event-editor.c: ditto * gui/gnome-cal.c: ditto svn path=/trunk/; revision=5090
* 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-122-0/+66
| | | | | | | | | | | | | | * 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-122-5/+169
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-122-0/+203
| | | | | | | | | | | | | | | | | | | | | 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-082-0/+37
| | | | | | | | | | | | | 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-083-6/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-032-8/+27
| | | | | | | | | | | | | | | 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
* Use CalComponent and the new property types instead of the old iCalObjectFederico Mena Quintero2000-08-025-127/+395
| | | | | | | | | | | | | | | | | | | | | | | | | | 2000-07-31 Federico Mena Quintero <federico@helixcode.com> * cal-util/cal-recur.c (*): Use CalComponent and the new property types instead of the old iCalObject stuff. (cal_recur_generate_instances): Renamed from cal_object_generate_events(). Ensure that the component has the DTSTART property. (generate_instances_for_year): Renamed from cal_object_generate_events_for_year(). (cal_obj_expand_recurrence): Made static. (cal_recur_from_icalrecurrencetype): New function. We should really convert this whole file to use struct icalrecurrencetype instead. (cal_recur_free): New function. * cal-util/cal-recur.h (CalRecurType): Renamed from CalObjRecurType. (CalRecurrence): Renamed from CalObjRecurrence. * cal-util/timeutil.c (time_from_icaltimetype): New function. * cal-util/Makefile.am: Commented out the test-recur program. svn path=/trunk/; revision=4464
* OK, it seems that we have all the interesting properties for single-userFederico Mena Quintero2000-07-272-0/+224
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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-272-209/+349
| | | | | | | | | | | | | | | | | 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-263-86/+320
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* fixed it so it doesn't crash when a URL is loaded.Damon Chaplin2000-07-232-3/+19
| | | | | | | | | | | 2000-07-23 Damon Chaplin <damon@helixcode.com> * cal-util/calobj.c (ical_object_create_from_vobject): fixed it so it doesn't crash when a URL is loaded. * cal-util/calobj.h: added a few more fields. svn path=/trunk/; revision=4280
* 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-192-1/+173
| | | | | | | | | | | | 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-152-1/+208
| | | | | | | | | | | | | | | | | | | 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
* fixed various problemsSeth Alves2000-07-131-0/+16
| | | | | | | | | | | * conduits/calendar/calendar-conduit.c: fixed various problems * cal-client/Makefile.am: build a static version of the library to link with the conduits * cal-util/Makefile.am: same svn path=/trunk/; revision=4116
* Handle the COMPLETED property. (free_icalcomponent): Ditto.Federico Mena Quintero2000-07-122-30/+264
| | | | | | | | | | | | | | | | | | | | 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-082-1/+108
| | | | | | | | | | | | | | | | | | | | | | 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-072-20/+106
| | | | | | | | | | | | | | | | | | 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-072-121/+303
| | | | | | | | | | | | | | | | | | | | | | | | | 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-042-11/+120
| | | | | | | | | | | | | | 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-042-253/+348
| | | | | | | | | | | | | | | | | | | | | | | | 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-032-24/+234
| | | | | | | | | | | | | | 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-022-12/+302
| | | | | | | | | | | | | | | | | | | | 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-012-40/+243
| | | | | | | | | | | | | | | 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-302-91/+303
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-294-3/+478
| | | | | | | | | | | | | 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
* Fix compilation with builddir != srcdir.Ettore Perazzoli2000-06-191-0/+1
| | | | svn path=/trunk/; revision=3630
* Doh, sync - FedericoFederico Mena Quintero2000-06-161-4/+4
| | | | svn path=/trunk/; revision=3593
* updated.Damon Chaplin2000-06-163-59/+593
| | | | | | | | | | | 2000-06-16 Damon Chaplin <damon@helixcode.com> * cal-util/test-recur.c: updated. * cal-util/cal-recur.[hc]: mostly finished, though it depends on the iCalObject struct being updated to support more of iCalendar. svn path=/trunk/; revision=3591
* use libical.aDamon Chaplin2000-06-161-1/+1
| | | | | | | | 2000-06-15 Damon Chaplin <damon@helixcode.com> * cal-util/Makefile.am (test_recur_LDADD): use libical.a svn path=/trunk/; revision=3586
* merge the two separate noinst_PROGRAMS declarations into one so automakeDan Winship2000-06-151-3/+2
| | | | | | | | | * cal-util/Makefile.am (noinst_PROGRAMS): merge the two separate noinst_PROGRAMS declarations into one so automake accepts it. (INCLUDES): include libical src dir so we don't depend on having ical.h already installed svn path=/trunk/; revision=3573
* switch back to vcal for debuggingSeth Alves2000-06-141-3/+3
| | | | svn path=/trunk/; revision=3555
* Added the array of objects and the hash table of UID->array index.Federico Mena Quintero2000-06-131-4/+1
| | | | | | | | | | | | | | | | | | | | | 2000-06-13 Federico Mena Quintero <federico@helixcode.com> * gui/calendar-model.c (CalendarModelPrivate): Added the array of objects and the hash table of UID->array index. (calendar_model_row_count): Return the length directly from the array instead of asking the Wombat. (calendar_model_value_at): Implemented. (calendar_model_new): Create an empty model. We provide a new setter function now. (calendar_model_construct): Removed function. (calendar_model_set_cal_client): New function to set the calendar client and object type at any time. This lets us reuse a calendar model object. * cal-util/calobj.h (iCalObjectField): Just report whether the object has alarms; not every single alarm. svn path=/trunk/; revision=3547
* Added a get_n_objects() method.Federico Mena Quintero2000-06-091-0/+26
| | | | | | | | | | | | | | | | | | | | | | 2000-06-09 Federico Mena Quintero <federico@helixcode.com> * idl/evolution-calendar.idl (Cal): Added a get_n_objects() method. * pcs/cal-backend.c (cal_backend_get_n_objects): New function. * pcs/cal-backend-imc.c (cal_backend_imc_get_n_objects): Implemented. * pcs/cal.c (Cal_get_n_objects): Implemented. * cal-client/cal-client.c (cal_client_get_uids): Free the ev. (cal_client_get_n_objects): Implemented. * cal-util/calobj.h (iCalObjectField): New enumeration to identify the fields in an iCalObject. svn path=/trunk/; revision=3486
* Allow for NULL summaries.Federico Mena Quintero2000-06-091-1/+1
| | | | | | | | | 2000-06-08 Federico Mena Quintero <federico@helixcode.com> * cal-util/calobj.c (ical_object_to_vobject): Allow for NULL summaries. svn path=/trunk/; revision=3478
* put this back in, it's still used inSeth Alves2000-06-082-3/+2
| | | | | | | * cal-util/calobj.c (ical_object_find_in_string): put this back in, it's still used in cal-backend-imc.c:cal_backend_imc_update_object svn path=/trunk/; revision=3466
* update some .cvsignoresSeth Alves2000-06-081-0/+1
| | | | svn path=/trunk/; revision=3464
* instead of returning a text representation, decode the text and return anSeth Alves2000-06-082-1/+7
| | | | | | | | | | | | | | | | | | | | | | * cal-client/cal-client.c (cal_client_get_object): instead of returning a text representation, decode the text and return an iCalObject. Also added CalClientGetStatus which indicates success or type of failure. * cal-util/calobj.c (ical_object_find_in_string): #ifed out ical_object_find_in_string since it is unused now. * cal-client/client-test.c (list_uids): track get_object change * gui/calendar-commands.c (calendar_iterate): same * gui/e-day-view.c (e_day_view_update_event): same * gui/e-week-view.c (e_week_view_update_event): same * gui/print.c (print_day_details): same (print_day_summary): same (print_todo_details): same * gui/gnome-cal.c (trigger_alarm_cb): same * gui/gncal-todo.c (gncal_todo_update): same svn path=/trunk/; revision=3463
* fixed a bunch of problems use libical instead of libversitSeth Alves2000-06-074-45/+254
| | | | | | | | | | | | | | | * cal-util/icalendar.c, icalendar-save.c: fixed a bunch of problems * cal-util/calobj.c (ical_object_find_in_string): use libical instead of libversit (ical_object_to_string): same (dump_icalobject): prints the contents of an icalobject for debugging * gui/Makefile.am (LINK_FLAGS): link libical.a instead of libical.la so we don't have to modify the build system of the released libical * cal-client/Makefile.am (client_test_LDADD): same * cal-util/Makefile.am (icalendar_test_LDADD): same svn path=/trunk/; revision=3446
* Removed from the public header; made static. Now everyone should useFederico Mena Quintero2000-06-072-30/+24
| | | | | | | | | | | | | 2000-06-06 Federico Mena Quintero <federico@helixcode.com> * cal-util/calobj.c (ical_object_destroy): Removed from the public header; made static. Now everyone should use refcounting. * pcs/cal-backend-imc.c (free_ical_object): Use ical_object_unref(). (remove_object): Likewise. svn path=/trunk/; revision=3439
* added test-recur test program.Damon Chaplin2000-06-015-347/+1869
| | | | | | | | | | | | | | 2000-05-31 Damon Chaplin <damon@helixcode.com> * cal-util/Makefile.am: added test-recur test program. * cal-util/test-recur.c: new file to test the recurrence code. * cal-util/.cvsignore: added test-recur. * cal-util/cal-recur.c: updated. svn path=/trunk/; revision=3315
* new files to implement iCalendar recurrence rules. These are only partDamon Chaplin2000-05-205-0/+1247
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-05-20 Damon Chaplin <damon@helixcode.com> * cal-util/cal-recur.[hc]: new files to implement iCalendar recurrence rules. These are only part finished, but people may like to check that the architecture seems OK. 2000-05-17 Damon Chaplin <damon@helixcode.com> * gui/e-day-view.c (e_day_view_on_delete_occurrence): * gui/e-week-view.c (e_week_view_on_delete_occurrence): use a copy of the iCalObject so we detect the change in the "update_event" callback. Maybe we should just update the view ourselves and then we wouldn't need to detect any change in the callback. * cal-util/calobj.c (ical_object_reset_recurrence): new function to get rid of any recurrence rules. Used when we 'unrecur' an event. * gui/e-day-view.c (e_day_view_key_press): don't add a new event if it won't fit, or we end up adding a new event for each key press. (e_day_view_update_event_label): don't update it if it doesn't have an EText item (i.e. it isn't visible). * gui/e-day-view-time-item.c: allow selection of times using this column. svn path=/trunk/; revision=3144
* Fixed warning message. (time_add_day): Likewise. (time_add_month):Federico Mena Quintero2000-05-191-4/+11
| | | | | | | | | | | | | | | | | 2000-05-19 Federico Mena Quintero <federico@helixcode.com> * cal-util/timeutil.c (time_add_minutes): Fixed warning message. (time_add_day): Likewise. (time_add_month): Likewise. (time_add_year): Likewise. (time_from_day): Of all functions, *this* one had to have a bug. Set the tm.tm_isdst to -1 to specify that we don't know whether the time is in DST or not. This fixes *many* bugs upstream. (time_week_begin): Likewise. We never noticed this since the week functions are never used. (time_week_end): Likewise. svn path=/trunk/; revision=3135
* Added version and availability of required libunicode library.Matt Loper2000-05-131-30/+35
| | | | | | | | | | | | | | | | | | | | 2000-05-10 Matt Loper <matt@helixcode.com> * README: Added version and availability of required libunicode library. 2000-05-10 Dan Winship <danw@helixcode.com> * configure.in: Update versions needed for gnome-print, bonobo, and gtkhtml. 2000-05-10 Christopher James Lahey <clahey@helixcode.com> * HACKING: We need a HACKING file. 2000-05-10 Christopher James Lahey <clahey@helixcode.com> svn path=/trunk/; revision=3008
* remove unused timezone variable to make this compile on BSD systems (whereDan Winship2000-05-121-1/+0
| | | | | | | | * pcs/icalendar-save.c (timet_to_icaltime): remove unused timezone variable to make this compile on BSD systems (where timezone is the name of a function) svn path=/trunk/; revision=2996
* Removed unused arguments. Load the initial alarms here. (load_alarms): NewFederico Mena Quintero2000-05-122-2/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-05-11 Federico Mena Quintero <federico@helixcode.com> * gui/gnome-cal.c (gnome_calendar_update_all): Removed unused arguments. Load the initial alarms here. (load_alarms): New function to load a day's worth of alarms. (gnome_calendar_class_init): Eeeek! This was taking in an incorrect argument type. (gnome_calendar_init): Now the calendar keeps a hash table of UIDs->queued alarms. Create the hash table here. (gnome_calendar_destroy): Destroy the alarms hash table. (gnome_calendar_object_updated_cb): Remove the alarms for the object and regenerate them. (gnome_calendar_object_removed_cb): Remove the alarms for the object. * gui/alarm.c (alarm_add): Do not take in a CalendarAlarm, just the trigger time, the callback and the closure data. Return an opaque identifier for the alarm so that it can be removed by the client code if needed. Use the queue_alarm() helper function. (queue_alarm): Helper function to actually queue the alarm and set up the itimer. Deal with a nonzero return value from setitimer(). (alarm_remove): New function to remove an alarm based on its ID. (pop_alarm): New helper function; pops the first alarm of the queue and resets the timer as appropriate. (alarm_ready): Simplified a lot by using pop_alarm(). * idl/evolution-calendar.idl (Cal): Added get_alarms_in_range(). * pcs/cal.c (build_instance_seq): New function to build a CORBA sequence from the internal list of instances. (Cal_get_events_in_range): Use build_instance_seq(). (Cal_get_alarms_in_range): Implemented new method. * pcs/cal-backend.c (cal_backend_get_alarms_in_range): New function with the get_alarms_in_range() engine. * pcs/cal-backend-imc.c (cal_backend_imc_get_alarms_in_range): Implemented the get_alarms_in_range() method. * cal-client/cal-client.c (cal_client_get_alarms_in_range): New client-side function for getting the alarms. (build_instance_list): New helper function to build the CalObjInstance list from the CORBA sequence. (cal_client_get_events_in_range): Use build_instance_list(). * gui/calendar-commands.h: #include <cal-util/calobj.h>. #include "gnome-cal.h". * gui/e-week-view.c: #include "calendar-commands.h" instead of main.h; the latter is an obsolete file and will be killed. * gui/evolution-calendar-control.c (main): Call init_bonobo() before anything else. We need the GTK+ object system initialized. * gui/Makefile.am (evolution_calendar_SOURCES): Do not use main.h. * cal-util/cal-util.c (cal_alarm_instance_list_free): New function. svn path=/trunk/; revision=2987
* don't set the ico->uid to NULL or we won't find any other occurrences ofDamon Chaplin2000-05-091-0/+1
| | | | | | | | | | | | | | | | | 2000-05-08 Damon Chaplin <damon@helixcode.com> * gui/e-week-view.c (e_week_view_remove_event_cb): * gui/e-day-view.c (e_day_view_remove_event_cb): don't set the ico->uid to NULL or we won't find any other occurrences of the event. Set the editing_event_day/num to -1 instead. * gui/e-week-view-event-item.c (e_week_view_event_item_draw): fixed the positioning of the icons for long events. * cal-util/calobj.c (ical_object_normalize_summary): forgot to terminate the string. svn path=/trunk/; revision=2920
* changed these so they just do a simple localtime(), update the struct tm,Damon Chaplin2000-05-071-0/+49
| | | | | | | | | | | | | | | 2000-05-06 Damon Chaplin <damon@helixcode.com> * cal-util/timeutil.c (time_day_begin): (time_day_end): changed these so they just do a simple localtime(), update the struct tm, then do a mktime(). I don't know why it used to look at the tm_isdst flags etc. From a little test program I wrote which steps through testing every hour for a year it wasn't working correctly, and the new code does. (time_add_day): also got rid of the stuff that looked at tm_isdst here. My test program now works better. svn path=/trunk/; revision=2841
* finish editing event when user hits Return key.Damon Chaplin2000-05-071-1/+33
| | | | | | | | | | | | | | | | | | | | | | | | | 2000-05-06 Damon Chaplin <damon@helixcode.com> * gui/e-day-view.c: * gui/e-week-view.c: finish editing event when user hits Return key. (e_week_view_on_text_item_event): stop event signals after doing any other calls, since otherwise it will also stop any other resulting event signals. * gui/e-week-view-event-item.c (e_week_view_event_item_draw): don't draw the start/end times while editing. * gui/eventedit.c: changed the Summary field to a GtkEntry, since we now only want a single line of text. * cal-util/calobj.c (ical_object_normalize_summary): new function to convert the summary field to a single line of text, by converting any sequence of CR & LF characters to a single space. (ical_object_create_from_vobject): call the above function. I think all functions that load iCalObjects go through this. (ical_new): called it here as well just in case. svn path=/trunk/; revision=2827
* added guint ref_count to iCalObject struct, and ical_object_ref/unref()Damon Chaplin2000-05-062-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-05-06 Damon Chaplin <damon@helixcode.com> * cal-util/calobj.[hc]: added guint ref_count to iCalObject struct, and ical_object_ref/unref() functions. I've updated all the gui/ stuff to use ref_counts but I haven't touched the pcs/ stuff. Maybe just using ical_object_destroy() is OK there. * gui/gncal-todo.c: * gui/calendar-commands.c: * gui/eventedit.c: * gui/e-week-view.c: * gui/e-day-view.c: use refcounting for iCalObjects. * gui/e-day-view-main-item.c: * gui/e-day-view-top-item.c: * gui/e-day-view.c: try not to ever draw outside the event, even when the event is very small. 2000-05-05 Damon Chaplin <damon@helixcode.com> * gui/e-day-view.c: don't allow recurring events to be resized or dragged, and don't show the resize/drag cursors. Actually it may be better to let the user do the resize/drag and then ask them what they want to do - change the single occurrence or the entire series. * gui/e-day-view-time-item.c (e_day_view_time_item_show_popup_menu): use e_auto_kill_popup_menu_on_hide() to destroy the popup menu. * gui/popup-menu.c: include e-gui-utils.h svn path=/trunk/; revision=2823
* for the long events pass E_DAY_VIEW_LONG_EVENT as the day. Fixes SEGV.Damon Chaplin2000-05-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-05-04 Damon Chaplin <damon@helixcode.com> * gui/e-day-view.c (e_day_view_foreach_event_with_uid): for the long events pass E_DAY_VIEW_LONG_EVENT as the day. Fixes SEGV. * gui/calendar-commands.c: when we switch views, grab the focus. * gui/gnome-cal.c (gnome_calendar_tag_calendar): (gnome_calendar_mark_gtk_calendar_day): changed this so it uses cal_client_get_events_in_range(), and doesn't load any objects. Also just return if it isn't visible. * gui/calendar-commands.c (calendar_get_events_in_range): call g_list_sort() to sort the list rather than g_list_insert_sorted() for each element. It is much more efficient. Also changed it so that the co->ev_start/end fields are copied from the CalObjInstance rather than the parameters to the function (that is right, isn't it?) Also freed the list elements, and finally the list. (calendar_iterate): changed this to use cal_client_get_events_in_range since that is more efficient than getting all the uids and then loading and parsing all the events. * pcs/cal-backend.c (save): output the '... saved' message before freeing the string! * gui/gncal-todo.c (gncal_todo_update): * gui/e-week-view.c (e_week_view_update_event): * gui/e-day-view.c (e_day_view_update_event): * gui/calendar-commands.c (calendar_get_events_in_range): (calendar_iterate): free obj_string after it is parsed. svn path=/trunk/; revision=2802
* set the active radio button here. Oops - it wasn't a Bonobo problem afterDamon Chaplin2000-05-032-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-05-02 Damon Chaplin <damon@helixcode.com> * gui/calendar-commands.c (calendar_control_activate): set the active radio button here. Oops - it wasn't a Bonobo problem after all. * gui/popup-menu.c (popup_menu): added call to e_auto_kill_popup_menu_on_hide() to destroy the menu. * gui/e-week-view.c (e_week_view_show_popup_menu): * gui/e-day-view.c (e_day_view_on_event_right_click): ico->user_data isn't useful any more, since the event editor keeps its own iCalObject. So for now we make the menu commands available even when the event is being edited in the event editor. Also corrected misspellings of 'occurance' -> 'occurrence'. * gui/eventedit.c (event_editor_destroy): destroy the iCalObject. The event editor now uses its own independent iCalObject. * gui/e-week-view.c (e_week_view_on_unrecur_appointment): * gui/e-day-view.c (e_day_view_on_unrecur_appointment): create a new uid for the new single instance. I'm not sure what we should do about the creation/last modification times of the objects. * gui/e-week-view.c (e_week_view_on_edit_appointment): * gui/e-day-view.c (e_day_view_on_edit_appointment): duplicate the iCalObject before passing it to the event editor, since it will change the fields. If we don't duplicate it we won't know what has changed when we get the "update_event" callback. * gui/e-week-view.c (e_week_view_key_press): * gui/e-day-view.c (e_day_view_key_press): set the created and last_mod times of the new iCalObject. We may want to set the default alarm as well. * cal-util/calobj.c (ical_gen_uid): made this function public so we can generate new uids if necessary. svn path=/trunk/; revision=2759
* set attendee and contact address correctly.Seth Alves2000-05-011-3/+3
| | | | | | | | | | | | * pcs/icalendar-save.c (icalcomponent_create_from_ical_object): set attendee and contact address correctly. * pcs/cal-backend.c (icalendar_calendar_load): init priv->object_hash when loading. (cal_get_type_from_filename): if file extension is .ical, consider the file an ical file. svn path=/trunk/; revision=2702
* new function to see if the event dates have changed (including anyDamon Chaplin2000-05-012-0/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-05-01 Damon Chaplin <damon@helixcode.com> * cal-util/calobj.c (ical_object_compare_dates): new function to see if the event dates have changed (including any recurrence rules). It is used for optimization when we get the "object_changed" signal. We have to do far less work if the dates are unchanged. * gui/e-week-view.c: * gui/e-day-view.c: only draw the selection when we have the keyboard focus, since the user expects to be able to type in a new event when the selection is shown. Also keep the selection when we lose focus, but just don't show it. Also quite a few changes to cope with the new client/server architecture. * gui/e-day-view-top-item.c (e_day_view_top_item_draw): * gui/e-day-view-main-item.c (e_day_view_main_item_draw): * gui/e-week-view-main-item.c (e_week_view_main_item_draw_day): only draw the selection if the widget has the keyboard focus. * gui/gnome-cal.c (mark_gtk_calendar_day): fixed so it works with events longer than one day. And changed the code for updating events in the new views. svn path=/trunk/; revision=2701
* deleted some commented out codeSeth Alves2000-04-281-3/+1
| | | | svn path=/trunk/; revision=2670
* Replaced libcal-util.la with *.laChristopher James Lahey2000-04-261-1/+1
| | | | | | | | | | 2000-04-26 Christopher James Lahey <clahey@helixcode.com> * cal-util/.cvsignore: Replaced libcal-util.la with *.la * pcs/.cvsignore: Added *.la and *.lo. svn path=/trunk/; revision=2628
* compare iCalObjects by their UIDs instead of by their pointers.Seth Alves2000-04-261-1/+2
| | | | | | | * gui/e-day-view.c (e_day_view_find_event_from_ico): compare iCalObjects by their UIDs instead of by their pointers. svn path=/trunk/; revision=2617
* allow for null CN (parse_person): allow for null sent_bySeth Alves2000-04-253-14/+171
| | | | | | | | | | | | * pcs/icalendar.c (parse_person): allow for null CN (parse_person): allow for null sent_by * pcs/Makefile.am: build icalendar-test * pcs/icalendar-test.c: a test which loads an ical file and converts it to our internal format, and then saves it back out. svn path=/trunk/; revision=2588
* finished first stab at iCalObject to icalcomponent conversion.Seth Alves2000-04-251-3/+147
| | | | svn path=/trunk/; revision=2584
* start on code to do the opposite of icalendar.c (convert from iCalObjectsSeth Alves2000-04-223-3/+377
| | | | | | | * pcs/icalendar-save.c: start on code to do the opposite of icalendar.c (convert from iCalObjects to libical's icalcomponents). svn path=/trunk/; revision=2550
* Fix include path.Federico Mena Quintero2000-04-191-3/+2
| | | | | | | | 2000-04-18 Federico Mena Quintero <federico@helixcode.com> * cal-util/Makefile.am (INCLUDES): Fix include path. svn path=/trunk/; revision=2491
* Renamed library from libcalutil to libcal-util, to be consistent withFederico Mena Quintero2000-04-175-31/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-04-16 Federico Mena Quintero <federico@helixcode.com> * cal-util/Makefile.am: Renamed library from libcalutil to libcal-util, to be consistent with libcal-client. Install header files in $(includedir)/evolution/cal-util. (INCLUDES): Add "cal-util" log domain for glib. (libcal_clientincludedir): The header files are now installed in $(includedir)/evolution/cal-client. * cal-util/cal-util.h: Fix includes. * cal-client/client-test.c: Fix includes. * pcs/Makefile.am: Create libpcs.a, not a shared library, because it is for internal use by Wombat only. The header files should not be installed, either. Removed all the old Tlacuache stuff. * gui/Makefile.am (EXTRA_DIST): We no longer distribute gncal.desktop. (evolution_calendar_INCLUDES): Add "calendar-gui" for the glib log domain. * gui/*.[ch]: Fix cal-util and cal-client includes. * pcs/Makefile.am (INCLUDES): Added "pcs" log domain for glib. * pcs/*.[ch]: Fix cal-util includes. svn path=/trunk/; revision=2461
* use HAVE_TIMEZONE to switch between linux's timezone variable and *bsd'sChris Toshok2000-04-121-2/+13
| | | | | | | | * pcs/icalendar.c (icaltime_to_timet): use HAVE_TIMEZONE to switch between linux's timezone variable and *bsd's method of getting the gmt offset. svn path=/trunk/; revision=2399
* Use ical_object_to_string().Federico Mena Quintero2000-03-284-109/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-03-27 Federico Mena Quintero <federico@helixcode.com> * pcs/cal-backend.c (cal_backend_get_object): Use ical_object_to_string(). * cal-util/calobj.c (ical_object_to_string): Moved over from pcs/cal-backend.c (was string_from_ical_object). (get_calendar_base_vobject): Likewise, moved over from pcs/cal-backend.c. * cal-util/cal-util.c: Removed string_to_ical_object(); the correct function is in calobj.[ch], called ical_object_find_in_string(). Removed ical_object_to_string, since we now implement it in calobj.c. * cal-util/calobj.c: Removed ical_object_new_from_string(); see above. * idl/evolution-calendar.idl (CalObjInstance): Calendar object instances now contain only the UID for the object, not the whole string representation of the object. This allows clients to implement caching of objects if they wish. * pcs/cal.c (Cal_get_events_in_range): Likewise. * pcs/cal-backend.c (build_event_list): Likewise. * cal-client/cal-client.c (cal_client_get_events_in_range): Likewise. * cal-util/cal-util.h (CalObjInstance): Likewise. * cal-util/cal-util.c (cal_obj_instance_list_free): Likewise. (cal_obj_uid_list_free): Assert that the UIDs in the list are not NULL. * pcs/tlacuache.gnorba (repo_id): The calendar factory also supports the Unknown interface. svn path=/trunk/; revision=2211
* Fix for srcdir != builddir.Elliot Lee2000-03-181-11/+9
| | | | | | | | | * calendar/cal-client/Makefile.am, calendar/cal-util/Makefile.am, calendar/gui/Makefile.am, calendar/pcs/Makefile.am, mail/Makefile.am, widgets/e-text/Makefile.am: Fix for srcdir != builddir. svn path=/trunk/; revision=2119
* Initialize the alarm types here. Do not call default_alarm() anymore,Federico Mena Quintero2000-03-111-24/+5
| | | | | | | | | | | | | | 2000-03-10 Federico Mena Quintero <federico@helixcode.com> * cal-util/calobj.c (ical_new): Initialize the alarm types here. Do not call default_alarm() anymore, since that is a GUI issue. (default_alarm): Removed function. (alarm_defaults): Removed defaults data. * pcs/tlacuache.c (calendar_notify): Removed stubs for alarm_defaults, calendar_notify(), debug_alarms. svn path=/trunk/; revision=2095
* replaced "Calendar *cal" with "CalClient *calc" in the GnomeCalendarSeth Alves2000-03-093-2/+83
| | | | | | | | | | | | | | | * gui/gnome-cal.h: replaced "Calendar *cal" with "CalClient *calc" in the GnomeCalendar struct. * gui/*.c: tracked change from Calendar * to CalClient * gui/main.c: moved alarm_defaults from here to cal-util/calobj.c (calendar_get_events_in_range): pulled this out of calendar.c and fixed it up to use cal-client stuff. i'm not sure where to put it yet. * gui/main.c (calendar_iterate): pulled this one out of calendar.c also svn path=/trunk/; revision=2090
* track movement of calobj.[ch]Seth Alves2000-03-082-2/+2
| | | | svn path=/trunk/; revision=2086
* ignore *.lo instead of a list of .lo filesSeth Alves2000-03-081-2/+1
| | | | svn path=/trunk/; revision=2085
* calobj.[ch] live in cal-util nowSeth Alves2000-03-081-0/+2
| | | | svn path=/trunk/; revision=2081
* stubs for client side access to alarm structures. this will probablySeth Alves2000-03-061-0/+18
| | | | | | | | | | | | | | | | | * cal-client/cal-client-alarm.c: stubs for client side access to alarm structures. this will probably change, since i don't know what i'm doing. * cal-util/alarm-enums.h: enums for alarms needed by both the client and the server * remaining source files in calendar/... have been moved to calendar/gui. * gui/alarm.c: start to decouple the view from the model in the alarm editing code svn path=/trunk/; revision=2062
* added some .cvsignore filesSeth Alves2000-03-041-0/+7
| | | | svn path=/trunk/; revision=2033
* new file -- things shared between the client and server go in thisSeth Alves2000-03-047-0/+1407
| | | | | | | | | | | | * cal-util/Makefile.am: new file -- things shared between the client and server go in this directory * calobj.c calobj.h icalendar.c icalendar.h timeutil.c timeutil.h cal-util.c cal-util.h where moved backend stuff went into pcs. shared stuff went into cal-util. svn path=/trunk/; revision=2032
* Change iCalObject.organizer from char* to iCalPerson*Russell Steinthal2000-02-162-11/+91
| | | | | | | | | | | | | | | 2000-02-16 Russell Steinthal <rms39@columbia.edu> * calobj.[ch], eventedit.c, main.c: Change iCalObject.organizer from char* to iCalPerson* * calobj.[ch]: Change iCalObject.related from list of char* to list of iCalRelation*; assorted related fixes * icalendar.c: interface between libical and the gnomecal internal representation svn path=/trunk/; revision=1791
* Connect to the Cal's destroy signal. (cal_backend_remove_cal): KilledFederico Mena Quintero2000-02-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-02-10 Federico Mena Quintero <federico@helixcode.com> * cal-backend.c (cal_backend_add_cal): Connect to the Cal's destroy signal. (cal_backend_remove_cal): Killed function now that removal of Cal objects is done in their destroy callback. (cal_destroy_cb): New callback to remove a Cal from the backend's list of clients. Also, the backend destroys itself when there are no more clients connected to it. (save): New placeholder function to save a backend. (destroy): New function to destroy a backend's data. (cal_backend_destroy): Save the calendar and destroy it. * cal.c (cal_destroy): Reset the priv->backend to NULL. * cal-factory.c (add_calendar_client): There is no need to call cal_backend_remove_cal(); we can now just destroy the Cal object. (create_fn): Make sure we always unref the URI. (load_fn): Move the URI unref to the end of the function for safety. * cal-factory.c (add_calendar_client): Unref the Cal only if notification of the listener was unsuccessful. Otherwise, the calendar user agent (Listener side) keeps the reference. * tl-test.c (list_uids): Free the calobj. * cal-client.c (cal_loaded_cb): Use bonobo_object_unref() to get rid of the listener. (load_or_create): Likewise. (destroy_factory): New function to get rid of the factory. (destroy_listener): New function to get rid of the listener. (destroy_cal): New function to get rid of the calendar client interface object. (cal_client_destroy): Free all resources. (cal_client_get_object): CORBA_free() the calobj string. Boy, I love memprof. * cal-listener.c (cal_listener_destroy): Reset the priv->cal to CORBA_OBJECT_NIL. * cal-backend.c (cal_backend_remove_cal): Do not unref the Cal, since the calendar user agent owns it. (cal_backend_add_cal): Do not ref the Cal, since the calendar user agent owns it. * cal-factory.c (add_calendar_client): Use bonobo_object_unref() to get rid of the calendar client interface object. * calobj.c (ical_object_create_from_vobject): Duplicate the default "PUBLIC" string. 2000-02-09 Federico Mena Quintero <federico@helixcode.com> * cal-factory.c (cal_factory_load): Added documentation comment. (load_fn): Do not print a message if the backend could not be loaded due to a non-fatal error. (queue_load_create_job): Moved the stuff from cal_factory_load() to here. Now this function serves to queue load or create requests. (cal_factory_load): Use queue_load_create_job(). (cal_factory_create): Implemented; use queue_load_create_job(). (create_fn): New job handler for creating new calendars. (create_backend): New function to create a new backend with a new calendar. (add_backend): New helper function to add backends to the factory's hash table. (load_backend): Use add_backend() instead of adding the backend by ourselves. * cal-client.c (load_or_create): Moved the functionality from cal_client_load_calendar() to here, and added an option to create a new calendar instead of loading an existing one. (cal_client_load_calendar): Use load_or_create(). (cal_client_create_calendar): Implemented. * cal-backend.c (cal_backend_create): Implemented. * evolution-calendar.idl (LoadStatus): Added an IN_USE error for create requests. * cal-listener.h (CalListenerLoadStatus): Added CAL_LISTENER_LOAD_IN_USE. * cal-listener.c (Listener_cal_loaded): Convert the IN_USE error. * cal-client.h (CalClientLoadStatus): Added CAL_CLIENT_LOAD_IN_USE. * cal-client.c (cal_loaded_cb): Handle CAL_LISTENER_LOAD_IN_USE. * tl-test.c: New test program for the calendar client side; it also exercises the server side by sending commands to it. * Makefile.am: Added the tl-test program. * tlacuache.gnorba: Updated. * tlacuache.c (create_cal_factory): Use the right GOAD id. * cal-client.c (cal_client_construct): Use the right GOAD id. svn path=/trunk/; revision=1732
* Added get_uids() method to get a list of UIDs based on object types.Federico Mena Quintero2000-02-092-78/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-02-08 Federico Mena Quintero <federico@helixcode.com> * evolution-calendar.idl (Cal): Added get_uids() method to get a list of UIDs based on object types. * cal-backend.c (cal_backend_get_uids): Implemented get_uids() in the backend. * cal.c (Cal_get_uids): Implemented get_uids() method. * cal-client.c (cal_client_get_uids): Implemented client-side function. * cal-util.c (cal_obj_instance_list_free): Doh. Free the list, not the last link. (cal_obj_uid_list_free): New function to free a list of UIDs. * GnomeCal.idl (Repository): Removed unused method get_object_by_id_list(). This is just for cleanup purposes and to remind me exactly of what needs to be moved over to evolution-calendar.idl. (Repository): Removed unused get_objects() method. * corba-cal.c (init_calendar_repo_class): Removed the unused get_objects method. * calobj.h (CalObjFindStatus): New status value enumeration for the find function. * calobj.c (ical_object_find_in_string): New function to parse a complete calendar and find a calendar object in it. This should be used instead ical_object_new_from_string() in the future. * evolution-calendar.idl (CalObjInstance): Added an uid field. Now the idea is that whenever calendar object strings are passed around, their UIDs are passed along with them so that the actual object can be pulled from the whole VCAL object using its UID to identify it. * cal-util.h (CalObjInstance): Added uid field. * cal-util.c (cal_obj_instance_list_free): Free the UIDs. * cal-backend.c (build_event_list): Store the object's UID in the instance structure. * cal.c (Cal_get_events_in_range): Copy the UID field to the CORBA structure. * cal-client.c (cal_client_get_events_in_range): Copy the UID field from the CORBA structure. * main.c (gnome_cal_file_menu): Removed unfinished html-month stuff. * Makefile.am (gnomecal_SOURCES): Removed html-month.c. * gnome-cal.c: #include "alarm.h" (mail_notify): Made static. * alarm.h: #include "calobj.h" * corba-cal-factory.h (init_corba_server): Fixed prototype. * quick-view.c (create_items_for_event): Made static. * gncal-todo.c (column_resized): Made static. * layout.c (find_index): Made static. svn path=/trunk/; revision=1699
* Add default alarm support, Beep on display alarms optionRussell Steinthal1999-11-031-13/+8
| | | | | | | | | Since there are now some calls from prop.c into previously static functions in eventedit.c, the code in those files should probably be reorganized. Perhaps a new alarm-utils.c file? In any case, this commits working code to the repository before we reorganize. svn path=/trunk/; revision=1366
* Small fix -miguelArturo Espinosa1999-09-281-30/+30
| | | | svn path=/trunk/; revision=1265
* About to rehash conduit.Eskil Heyn Olsen1999-09-191-1/+1
| | | | | | Changed pilotid in calobj to guint32. svn path=/trunk/; revision=1240
* added sources to calendar-conduitEskil Heyn Olsen1999-09-151-2/+2
| | | | | | | | | | | | * gncal/Makefile.am: added sources to calendar-conduit * gncal/calendar-conduit.c: imported Miguels update_record function * gncal/corba-cal.c: fixed a grave bug in exception throwing, which cause ORBit to sigsegv. svn path=/trunk/; revision=1229
* Fix the hostname part.Miguel de Icaza1999-08-151-3/+3
| | | | | | | | 1999-08-15 Miguel de Icaza <miguel@gnu.org> * calobj.c (ical_gen_uid): Fix the hostname part. svn path=/trunk/; revision=1116
* Lots of more work on the sync stuff. It works pretty well now.Arturo Espinosa1999-07-291-6/+11
| | | | | | | | | | Lots of more work on the sync stuff. It works pretty well now. I dont know why my pilot is not accepting the events I send to it though Miguel. svn path=/trunk/; revision=1040
* New file. Implements PalmPilot syncronization with the Gnome Calendar.Miguel de Icaza1999-07-282-0/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1999-07-28 Miguel de Icaza <miguel@gnu.org> * calendar-pilot-sync.c: New file. Implements PalmPilot syncronization with the Gnome Calendar. 1999-07-27 Miguel de Icaza <miguel@gnu.org> * calobj.c (ical_object_new_from_string): New function. Creates an iCalObject from a vCalendar string that is supposed to contain only one vEvent. * calendar.c: (calendar_save): Split this routine in two. * gnome-cal.c (gnome_calendar_new): Create the corba server here. * main.c: Include gnorba.h, and corba-cal-factory.h here (close_cmd): Kill the calendar server on shutdown. * calobj.c (load_recur_yearly_day): Added a fixme comment. WE need to handle intervals in the years. * calendar.c (calendar_object_find_in_list, calendar_object_find, calendar_object_find_todo, calendar_object_find_event): New functions for looking up information. * main.c (gnome_calendar_locate): New function. * corba-cal.c (calendar_create_object): New file. Implements the corba server. * calendar.c (calendar_object_changed): Flag pilot-status as changed. * calobj.c (ical_object_to_vobject): Save pilot information for syncing. (ical_object_create_from_vobject): Load syncing information for pilot. Do it in a way compatible with KOrganizer. 1999-07-26 Miguel de Icaza <miguel@gnu.org> * calobj.c (ical_object_create_from_vobject): Generate unique IDs on Vevents we load that lack it. WE need this for the old gnome calendar generated files (ie, before now :-). svn path=/trunk/; revision=1038
* Generate unique IDs on Vevents we load that lack it. WE need this for theMiguel de Icaza1999-07-271-1/+3
| | | | | | | | | | | | 1999-07-26 Miguel de Icaza <miguel@gnu.org> * calobj.c (ical_object_create_from_vobject): Generate unique IDs on Vevents we load that lack it. WE need this for the old gnome calendar generated files (ie, before now :-). Required to sync with the Palm svn path=/trunk/; revision=1037
* Changed gnome-pim.keys to use the --file flagMiguel de Icaza1999-07-171-3/+27
| | | | | | | | | | | | | | | | | | Changed gnome-pim.keys to use the --file flag 1999-07-14 Miguel de Icaza <miguel@gnu.org> * calobj.c (ical_gen_uid): Returns a UID. (ical_object_new): Use a UID when creating an event. Should get syncing done easier. 1999-07-14 Nicholas J Kreucher <nick@poetic.com> * calobj.c (skip_numbers): Actually skip over the numbers. (ical_object_to_vobject): Test the proper variable for storing the proper information. svn path=/trunk/; revision=1027
* One line bug fix from Sergey I Panov.Miguel de Icaza1999-06-041-1/+1
| | | | | | | | 1999-06-03 Miguel de Icaza <miguel@nuclecu.unam.mx> * calobj.c (daynumberlist): One line bug fix from Sergey I Panov. svn path=/trunk/; revision=969
* Work around broken software that writes a broken month-of-day as "zero".Miguel de Icaza1999-06-021-0/+8
| | | | | | | | | | 1999-06-01 Miguel de Icaza <miguel@nuclecu.unam.mx> * calobj.c (daynumberlist): Work around broken software that writes a broken month-of-day as "zero". Use the dtstart date for this on this event. svn path=/trunk/; revision=963
* Make intervals always exist. a 0 interval is wrong.Miguel de Icaza1999-05-261-0/+4
| | | | | | | | | 1999-05-25 Miguel de Icaza <miguel@nuclecu.unam.mx> * calobj.c (load_recurrence): Make intervals always exist. a 0 interval is wrong. svn path=/trunk/; revision=942
* Added this routine so Monthly recurrences use the weekday field as aSteve Murphy1999-04-041-9/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1999-04-01 Steve Murphy <murf@e-tools.com> * calobj.c (weekdaynum): Added this routine so Monthly recurrences use the weekday field as a simple integer for a single weekday. * calobj.c (load_recur_monthly_pos): Call weekdaynum instead of weekdaylist. The interface only lets the user input a single value anyway. * calobj.c (ical_object_to_vobject): instead of code to output day names from a bit array, use instead the value as an int and output a single dayname. * calobj.c (ical_object_generate_events): first_week_day gets the day int instead of the first entry in the bit field. I inserted a fair chunk of code to avoid calling generate if the day is out of range for a month. It may be unneccessary, because mktime will turn the extra days into a valid date the next month. But not all mktimes are equal, I fear. * eventedit.c (ee_store_recur_rule_to_ical): For case 3, (Monthly), I added code to set the interval slot of the recur struct; without this value, selecting a monthly recursing, by date, would lead to an infinite loop broken only by a failure to alloc more memory. Also, in the "by position" case, both u.month_pos and u.month_day were being assigned values. This is a mistake, as they are both part of an union, and the same thing. The weekday field should get the recur_rr_month_weekday value. * eventedit.c (ee_rp_init_rule): set default day from the weekday field instead of the u.month_day field, which is really the month_pos value. * gnome-cal.c (gnome_calendar_tag_calendar): Month days start with 1, not 0; thus, setting tm.tm_mday = 0, and then calling mktime will generate a time corresponding to the end of the previous month, which may have a mday anywhere from 28 to 31. The end time just adds 1 to the month, so your end time may not cover the last few days of this month, depending on what the biggest mday of last month was. I changed it so tm_mday is set to 1 instead. 1999-03-30 Federico Mena Quintero <federico@nuclecu.unam.mx> svn path=/trunk/; revision=792
* Include <config.h> so that strings get translated. Correct spelling.Nuno Ferreira1999-03-281-0/+1
| | | | | | | | | 1999-03-27 Nuno Ferreira <nmrf@rnl.ist.utl.pt> * gncal/calobj.c: Include <config.h> so that strings get translated. * po/pt.po: Correct spelling. svn path=/trunk/; revision=781
* Added 2 paranthesis.. "foobar = d / 60*60" is _NOT_ the same as "foobar =Tomas Ogren1999-03-241-1/+1
| | | | | | | | | | | 1999-03-23 Tomas Ogren <stric@ing.umu.se> * gnomecal/calobj.c: Added 2 paranthesis.. "foobar = d / 60*60" is _NOT_ the same as "foobar = d / (60*60)" which caused heavy alarm-corruption with alarms between 2 hrs and 2 days. svn path=/trunk/; revision=776
* 1999-03-10 Craig A Soules (soules+@andrew.cmu.edu)Arturo Espinosa1999-03-111-2/+13
| | | | | | | * timeutil.c, calendar.c, calobj.c, gncal-day-panel.c: Add support for daylight time savings. svn path=/trunk/; revision=756
* Save the owner/organizer of the event. (ical_object_create_from_vobject):Miguel de Icaza1999-02-241-0/+10
| | | | | | | | | | | | | 1999-02-23 Miguel de Icaza <miguel@nuclecu.unam.mx> * calobj.c (ical_object_to_vobject): Save the owner/organizer of the event. (ical_object_create_from_vobject): Load the owner/organizer of the event. * gncal-full-day.c (delete_occurance): Assign child to data (fixes crash on "delete this occurrance"). svn path=/trunk/; revision=689
* GNOME PIM livesMichael Fulbright1998-12-092-2/+2
| | | | | | Dr Mike <drmike@redhat.com> svn path=/trunk/; revision=518
* Add ctype.hMiguel de Icaza1998-11-071-0/+1
| | | | | | | | 1998-11-06 Miguel de Icaza <miguel@nuclecu.unam.mx> * calobj.c: Add ctype.h svn path=/trunk/; revision=465
* Changed name from time_start_of_day() to be consistent with the otherFederico Mena Quintero1998-10-032-63/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1998-10-02 Federico Mena Quintero <federico@nuclecu.unam.mx> * timeutil.c (time_day_begin): Changed name from time_start_of_day() to be consistent with the other begin/end functions. (time_day_end): Likewise. * calobj.c (ical_object_get_first_weekday): New public function to get the first toggled day in a weekday mask. Since we do not support multiple weekdays in a monthly-by-pos rule, we just fetch the first toggled one. (ical_object_generate_events): Added a missing break statement. * timeutil.c (time_month_end): Made it consistent with the rest of the time begin/end functions -- now it returns the first second of the *next* month. (time_week_end): Actually implemented this function. It will be used when the week view is rewritten. * calobj.c (time_in_range): Fix off-by-one in the comparison of the time against the end time. * gncal-full-day.c (expand_space): Fixed bug where the columns not were being expanded due to a missing "slot + j". svn path=/trunk/; revision=425
* Small fixes for calendar savingArturo Espinosa1998-08-221-2/+4
| | | | svn path=/trunk/; revision=328
* Fix for the weekly event generation. Was reported on the bug trackingMiguel de Icaza1998-05-261-1/+1
| | | | | | | | | 1998-05-25 Miguel de Icaza <miguel@nuclecu.unam.mx> * calobj.c (ical_object_generate_events): Fix for the weekly event generation. Was reported on the bug tracking system. svn path=/trunk/; revision=237
* Bug free version of the range computation in place.Miguel de Icaza1998-05-161-2/+2
| | | | | | | | | | | | | | | 1998-05-15 Miguel de Icaza <miguel@nuclecu.unam.mx> * gnome-cal.c (mark_gtk_calendar_day): Bug free version of the range computation in place. * gncal-year-view.c (year_view_mark_day): Use the same new version of the range computation here. * calobj.c (ical_object_generate_events): Fix the begin/end condition. svn path=/trunk/; revision=215
* Do not add the spurious padding.Miguel de Icaza1998-05-152-5/+45
| | | | | | | | | | | | | | | | | | | | | | | | 1998-05-14 Miguel de Icaza <miguel@nuclecu.unam.mx> * timeutil.c (isodate_from_time_t): Do not add the spurious padding. * calobj.c (store_date_list): Bug fix: I was using the wrong pointer when saving the exception date list. (set_date_list): Bug fix: load correctly the complete exception date list. (set_date_list): Use ',' for the exception date separator as the versit people can not get their standard right. * gncal-full-day.c (unrecur_appointment): Support for making an existing recurrent event `movable' for a day. * calobj.c (ical_object_add_exdate): New routine, used to add exception dates. (ical_object_duplicate): New routine: used to do the magic recur->no-recur event. svn path=/trunk/; revision=214
* Draw the day at startup. (gncal_day_panel_set): Fix selected-day display.Miguel de Icaza1998-05-041-2/+0
| | | | | | | | | | | | | 1998-05-03 Miguel de Icaza <miguel@nuclecu.unam.mx> * gncal-day-panel.c (update): Draw the day at startup. (gncal_day_panel_set): Fix selected-day display. (gncal_day_panel_new): Switch day on double clicks, not on single clicks. * calobj.c (ical_object_compute_end): Removed debug messages. svn path=/trunk/; revision=205
* Fixed alarm saving code. Fixed alarm loading code. New -partial-Arturo Espinosa1998-04-252-22/+46
| | | | | | | | | Fixed alarm saving code. Fixed alarm loading code. New -partial- implementation of the mail alarm. It is not working, I do not know what is closing stdin to sendmail svn path=/trunk/; revision=194
* Fixes for vTodo thingies -migArturo Espinosa1998-04-231-7/+18
| | | | svn path=/trunk/; revision=190
* Lots of changes:Miguel de Icaza1998-04-221-1/+0
| | | | | | | | | | | | | | | | | | | | | | | Lots of changes: 1998-04-21 Miguel de Icaza <miguel@nuclecu.unam.mx> 1. gEdit got Gnomified: gnome-stock, gnome-app, i18n tretment + integration into gnome-utils compilation. Original configure.in is still there for Alex/Evans to redistribute as Gtk App (I tried to ifdef gnome code). 2. gHex: warning fixes + crash fixes + i18n fixes. 3. GnCal: week view shows date range (needs some fixing); changed the day view order; other stuff I dont remember 4. GTop: more i18n treatmnet. 5. Updated Spanish translation. svn path=/trunk/; revision=178
* Enhance the exception date handling -migArturo Espinosa1998-04-211-16/+38
| | | | svn path=/trunk/; revision=174
* Fix compiler warnings - FedericoArturo Espinosa1998-04-211-3/+6
| | | | svn path=/trunk/; revision=170
* more fixes -migArturo Espinosa1998-04-211-0/+3
| | | | svn path=/trunk/; revision=169
* A lot of usability changes to GnomeCal -miguelArturo Espinosa1998-04-211-1/+23
| | | | svn path=/trunk/; revision=168
* Add Quoted printable property to items containing new lines. (duration):Miguel de Icaza1998-04-191-6/+15
| | | | | | | | | | | | | | | 1998-04-18 Miguel de Icaza <miguel@nuclecu.unam.mx> * calobj.c (ical_object_to_vobject): Add Quoted printable property to items containing new lines. (duration): Use unsigned integers, to work around buggy calendar files generated by korganizer. * main.c (save_calendar_cmd): Do not ask for file name if we are saving. (save_as_calendar_cmd): New command. svn path=/trunk/; revision=158
* Final steps.Arturo Espinosa1998-04-181-2/+1
| | | | svn path=/trunk/; revision=157
* Yes.Arturo Espinosa1998-04-182-0/+25
| | | | | | | | | | | | | | | | | | | | | Yes. It works. It loads, it saves, it does all that stuff. It works, even if federico complains that we did not test close. Repetition, alarms, all that stuff you all guys love. It it is there. We did minimal testing, but we know you will happilly commit a fix if you find a problem, right? Ok, we are off to a party now. Miguel svn path=/trunk/; revision=155
* Added mandatory status property. (ical_object_to_vobject): Only storeFederico Mena Quintero1998-04-181-4/+12
| | | | | | | | | | 1998-04-17 Federico Mena Quintero <federico@nuclecu.unam.mx> * calobj.c (ical_new): Added mandatory status property. (ical_object_to_vobject): Only store "related" list if it exists. (store_list): Add terminating null char and free the correct data. svn path=/trunk/; revision=154
* Added mandatory status property. (ical_object_to_vobject): Only storeFederico Mena Quintero1998-04-181-1/+3
| | | | | | | | | | | | | | | | 1998-04-17 Federico Mena Quintero <federico@nuclecu.unam.mx> * calobj.c (ical_new): Added mandatory status property. (ical_object_to_vobject): Only store "related" list if it exists. * main.c (save_calendar_cmd): Implemented calendar saving. (open_calendar_cmd): Implemented calendar loading. (new_calendar_cmd): Implemented calendar creation. (new_calendar): Don't load our test calendar by default. * gncal-full-day.c (delete_appointment): Delete appointment implemented. svn path=/trunk/; revision=153
* Year view, double click -migArturo Espinosa1998-04-182-22/+93
| | | | svn path=/trunk/; revision=152
* The event dialog is beautified, recurrences are saner.Federico Mena Quintero1998-04-182-6/+6
| | | | | | | | | | 1998-04-17 Federico Mena Quintero <federico@nuclecu.unam.mx> * eventedit.c (ee_init_recurrence_page): New function that creates the recurrence page in the toplevel notebook. (ee_store_recur_values_to_ical): Now we can also store the recurrences. svn path=/trunk/; revision=151
* We load the alarms -migArturo Espinosa1998-04-182-15/+49
| | | | svn path=/trunk/; revision=150
* Save Recurrence rules -MiguelArturo Espinosa1998-04-181-4/+108
| | | | svn path=/trunk/; revision=149
* Large number of updates. Recurrence basically works now in most of itsArturo Espinosa1998-04-182-17/+213
| | | | | | | | | Large number of updates. Recurrence basically works now in most of its forms (daily, weekly, month-by-position). Miguel. svn path=/trunk/; revision=148
* Remove deadly excessive abuse of encapsulation -migArturo Espinosa1998-04-172-12/+11
| | | | svn path=/trunk/; revision=147
* New event generation api in place -miguelArturo Espinosa1998-04-171-1/+3
| | | | svn path=/trunk/; revision=146
* Use menu_shell->children, not menu->children. Why does GtkMenu have aFederico Mena Quintero1998-04-172-2/+3
| | | | | | | | | | | | | | | | | | | | | 1998-04-16 Federico Mena Quintero <federico@nuclecu.unam.mx> * eventedit.c (ee_store_alarm): Use menu_shell->children, not menu->children. Why does GtkMenu have a children field in the object structure? (check_dates): New function that insures that start_date < end_date. (check_times): In addition to checking whether the event spans the whole day, now it insures that start_time < end_time. * gncal-full-day.c (child_set_size): Now children get bigger temporarily while they are focused. This allows the handles not to "overlap" the rows used by the child and thus allow editing of very thin events. (recompute_motion): Fix for new child coordinates. (gncal_full_day_expose): Make it use find_child_by_window() instead of looking for it by hand. svn path=/trunk/; revision=145
* The general_owner may be null. Do the proper thing when creating theFederico Mena Quintero1998-04-162-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | 1998-04-15 Federico Mena Quintero <federico@nuclecu.unam.mx> * eventedit.c (ee_init_general_page): The general_owner may be null. Do the proper thing when creating the label. (ee_ok): Update the gnome calendar appropriately. * timeutil.h: * gncal-year-view.h: Add some missing prototypes. * gncal-full-day.c (child_popup_menu): Set the sensitivity of menu items according to whether the ical object is being edited or not. * eventedit.c (event_editor_new): Set the "being edited" flag on the ical object (stored as the ical object's user data). (event_editor_destroy): Release the flag. * calobj.h: The iCalObject structure now has a generic user_data pointer. * calobj.c (ical_object_set_user_data ical_object_get_user_data): Functions to set this data. svn path=/trunk/; revision=140
* Year view marks ranges of new dates (on update view). Recurrence iteratorArturo Espinosa1998-04-152-5/+25
| | | | | | | | | | | Year view marks ranges of new dates (on update view). Recurrence iterator functions are here now (clap, clap, clap). Microsoft Outlook's days are counted. Miguel. svn path=/trunk/; revision=139
* Routine to destory rows array properly.Miguel de Icaza1998-04-151-33/+66
| | | | | | | | | | | | | | | 1998-04-15 Miguel de Icaza <miguel@nuclecu.unam.mx> * gncal-full-day.c (layout_kill_rows): Routine to destory rows array properly. * gncal-year-view.c (gncal_year_view_new): Add missing year in call to strftime. * calobj.c (ical_object_create_from_vobject): Fixed memory leaks from the return values of versit's fakeCString. svn path=/trunk/; revision=136
* New widget for the year view. added required compilation of the new files.Arturo Espinosa Aldama1998-04-151-14/+12
| | | | | | | | | 1998-04-14 Arturo Espinosa Aldama <arturo@nuclecu.unam.mx> * gncal-year-view.[hc]: New widget for the year view. * Makefile.am: added required compilation of the new files. svn path=/trunk/; revision=134
* Load recurrence rules; Paint the recurrence screen according to the rules.Arturo Espinosa1998-04-142-4/+281
| | | | | | | | | Load recurrence rules; Paint the recurrence screen according to the rules. -miguel svn path=/trunk/; revision=133
* Now takes object and flags parameters. Likewise. Likewise.Federico Mena Quintero1998-04-141-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | 1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-week-view.c (gncal_week_view_update): Now takes object and flags parameters. * gncal-day-view.c (gncal_day_view_update): Likewise. * gncal-full-day.c (gncal_full_day_update): Likewise. (child_focus_in): New function. In conjunction with child_focus_out(), these only display the handles in the child when it is focused. The result is that the user can see more of the child's text when nothing is focused, and we can also display fatter and nicer drag handles. * gnome-cal.c (gnome_calendar_object_changed): Now takes an additional flags parameter (gnome_calendar_update_all): Made function static. Now takes changed object and flags parameters as well. (gnome_calendar_object_changed): Now takes additional flags parameter to indicate what changed in the specified object. * calobj.h (CalObjectChange): New enum with flags to describe what has been changed in an object. svn path=/trunk/; revision=132
* Begginning of the create-appointment-on-range-selection-and-enter code -miguelArturo Espinosa1998-04-121-0/+2
| | | | svn path=/trunk/; revision=127
* More work on the recurrence dialog box, day navigation -migArturo Espinosa1998-04-122-6/+25
| | | | svn path=/trunk/; revision=126
* Show instead of just map the child widget (otherwise the text widget getsFederico Mena Quintero1998-04-092-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | 1998-04-09 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-full-day.c (child_map): Show instead of just map the child widget (otherwise the text widget gets confused and will not focus). * calobj.c (ical_object_to_vobject): Quote chars as 'x', not "x". * calobj.h: Added prototype for ical_object_to_vobject(). * gnome-cal.c (gnome_calendar_object_changed): New function. This should be called when a calendar object is changed. * gncal-full-day.c (update_from_drag_info): Call gnome_calendar_object_changed() instead of updating manually. * calendar.c (calendar_add_object): (calendar_remove_object): Set the modified flag to true. * gncal-full-day.c (gncal_full_day_draw): Finished implementing this function. svn path=/trunk/; revision=120
* vCalendar gets fully saved -migArturo Espinosa1998-04-051-3/+83
| | | | svn path=/trunk/; revision=107
* lots more -migArturo Espinosa1998-04-041-2/+33
| | | | svn path=/trunk/; revision=105
* Lots -migArturo Espinosa1998-04-042-16/+83
| | | | svn path=/trunk/; revision=103
* add test.vcf, more code progress -migArturo Espinosa1998-04-031-0/+2
| | | | svn path=/trunk/; revision=100
* Various time fixes; lib fixes; cache fixes -migArturo Espinosa1998-04-031-1/+1
| | | | svn path=/trunk/; revision=96
* New main program that uses our new datatypes and objects.Miguel de Icaza1998-04-022-2/+173
| | | | | | | | | | | | | | | | | | | | | 1998-04-02 Miguel de Icaza <miguel@nuclecu.unam.mx> * main.c: New main program that uses our new datatypes and objects. * calendar.c (calendar_load_from_vobject, calendar_load): Implement loading of vCalendar objects and vCalendar files. * calobj.c (ical_object_create_from_vobject): Implement loading of vCalendar event and todo objects. * timeutil.c (isodate_from_time_t): New function. * gnome-cal.c, gnome-cal.h: Implement a toplevel widget, derived from GnomeApp. It holds all of the day views and arbitrates the display. svn path=/trunk/; revision=93
* Removed #include "gtkcalendar.h", because it now comes from libgnomeui.Federico Mena Quintero1998-04-012-3/+5
| | | | | | | | | | | 1998-03-31 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal.c: Removed #include "gtkcalendar.h", because it now comes from libgnomeui. * Makefile.am (gncal_SOURCES): Added new source files to the rules. svn path=/trunk/; revision=84
* Calendar objects as defined by the iCalendar IETF draft. Calendar holderArturo Espinosa1998-04-012-0/+148
Calendar objects as defined by the iCalendar IETF draft. Calendar holder for Calendar Objects. -mig&fed svn path=/trunk/; revision=79