Commit Graph

136 Commits

Author SHA1 Message Date
ac94f697a5 New function. (cal_component_get_icalcomponent): Ensure that the SEQUENCE
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
2000-08-08 02:55:29 +00:00
4de1f796a4 Big sync. Disable calendar compilation for a few hours - Federico
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
2000-08-07 21:38:28 +00:00
83cbc862e6 New files for the iCalendar file backend.
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
2000-08-02 22:15:22 +00:00
4e5b1da82e Use CalComponent and the new property types instead of the old iCalObject
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
2000-08-02 01:08:52 +00:00
582e76a02e OK, it seems that we have all the interesting properties for single-user
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
2000-07-26 19:52:50 +00:00
06415e37e2 Ahem, be consistent with parameter names - Federico
svn path=/trunk/; revision=4354
2000-07-26 18:17:33 +00:00
04122bc68e Put all the functions used to free returned values all together.
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
2000-07-26 18:12:29 +00:00
38168a2e40 New function. (scan_property): Handle the RDATE property. (scan_period):
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
2000-07-25 22:01:22 +00:00
96b11a7e66 fixed it so it doesn't crash when a URL is loaded.
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
2000-07-23 11:05:52 +00:00
cb1c400a50 Finish filling the trigger. What a pain, again.
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
2000-07-20 01:06:52 +00:00
0557f19467 Free the icalcomponent if this is an unattached alarm.
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
2000-07-19 00:26:37 +00:00
fa82ca2af9 New internal represntation for alarm components. We really don't map them
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
2000-07-15 00:56:01 +00:00
ed332931e1 fixed various problems
* 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
2000-07-12 18:26:16 +00:00
71cd8403b2 Handle the COMPLETED property. (free_icalcomponent): Ditto.
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
2000-07-12 01:02:36 +00:00
665da2c706 Handle the SEQUENCE property. (free_icalcomponent): Ditto.
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
2000-07-07 18:42:38 +00:00
3b62a242bf Handle the LAST-MODIFIED property. (free_icalcomponent): Ditto.
2000-07-06  Federico Mena Quintero  <federico@helixcode.com>

	* cal-util/cal-component.c (scan_property): Handle the
	LAST-MODIFIED property.
	(free_icalcomponent): Ditto.
	(cal_component_get_last_modified): Ditto.
	(cal_component_set_last_modified): Ditto.
	(get_icaltimetype): New function to get struct icaltimetype
	values.
	(cal_component_get_created): Use get_icaltimetype().
	(set_icaltimetype): New function to set struct icaltimetype
	values.
	(cal_component_set_created): Use set_icaltimetype().

svn path=/trunk/; revision=3936
2000-07-07 02:38:52 +00:00
1c3ee9654b Handle the CREATED property. (free_icalcomponent): Ditto.
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
2000-07-07 02:07:43 +00:00
4ae033dd39 Use CalComponentText instead of CalComponentPropSummary. Removed the
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
2000-07-04 00:58:22 +00:00
43f902781b Renamed from cal_component_free_description_list(). We can share this
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
2000-07-03 22:59:07 +00:00
9ec7ff026c Handle CATEGORIES. This can appear multiple times, so we maintain a list.
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
2000-07-03 02:24:27 +00:00
514ae3ebe3 Handle date/time and timezone pairs. (scan_property): Handle DTSTART and
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
2000-07-02 13:25:35 +00:00
ec8bc2a47c Handle the DESCRIPTION property. There can be multiple descriptions with
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
2000-07-01 08:24:43 +00:00
08d1bc1329 Get an EvolutionShellClient instead of an Evolution_Shell to match the
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
2000-06-30 07:22:43 +00:00
31e562c685 New files for the new iCalendar component object. Today's properties:
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
2000-06-29 07:16:19 +00:00
105dd5c5f6 Fix compilation with builddir != srcdir.
svn path=/trunk/; revision=3630
2000-06-19 05:56:31 +00:00
ef4fb079a4 Doh, sync - Federico
svn path=/trunk/; revision=3593
2000-06-16 07:07:02 +00:00
5ecbc259fa updated.
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
2000-06-16 06:59:18 +00:00
b52a9eaa1c use libical.a
2000-06-15  Damon Chaplin  <damon@helixcode.com>

	* cal-util/Makefile.am (test_recur_LDADD): use libical.a

svn path=/trunk/; revision=3586
2000-06-16 00:48:44 +00:00
927da63198 merge the two separate noinst_PROGRAMS declarations into one so automake
* 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
2000-06-15 15:11:42 +00:00
a304d83907 switch back to vcal for debugging
svn path=/trunk/; revision=3555
2000-06-14 03:55:31 +00:00
e7deedccda Added the array of objects and the hash table of UID->array index.
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
2000-06-13 07:38:47 +00:00
943862dd20 Added a get_n_objects() method.
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
2000-06-09 07:04:09 +00:00
1396db5dc3 Allow for NULL summaries.
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
2000-06-08 16:28:39 +00:00
d96e01691f put this back in, it's still used in
* 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
2000-06-07 20:10:39 +00:00
44f99466e7 update some .cvsignores
svn path=/trunk/; revision=3464
2000-06-07 20:01:51 +00:00
35c55267f2 instead of returning a text representation, decode the text and return an
* 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
2000-06-07 19:59:48 +00:00
c219c79496 fixed a bunch of problems use libical instead of libversit
* 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
2000-06-06 21:56:20 +00:00
ae33d3f67e Removed from the public header; made static. Now everyone should use
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
2000-06-06 18:15:57 +00:00
10e4e8dc54 added test-recur test program.
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
2000-05-31 22:09:33 +00:00
4eb47f9a46 new files to implement iCalendar recurrence rules. These are only part
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
2000-05-20 10:38:19 +00:00
5cc159a958 Fixed warning message. (time_add_day): Likewise. (time_add_month):
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
2000-05-19 06:09:48 +00:00
725e254d72 Added version and availability of required libunicode library.
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
2000-05-12 23:15:04 +00:00
ad6e274f87 remove unused timezone variable to make this compile on BSD systems (where
* 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
2000-05-11 21:18:24 +00:00
d509f47a95 Removed unused arguments. Load the initial alarms here. (load_alarms): New
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
2000-05-11 17:31:30 +00:00
c2dde9ab64 don't set the ico->uid to NULL or we won't find any other occurrences of
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
2000-05-08 16:37:31 +00:00
d1694fef3e changed these so they just do a simple localtime(), update the struct tm,
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
2000-05-06 22:46:54 +00:00
9b57702d4d finish editing event when user hits Return key.
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
2000-05-06 16:47:27 +00:00
10ee8953e2 added guint ref_count to iCalObject struct, and ical_object_ref/unref()
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
2000-05-06 10:43:14 +00:00
ea787be718 for the long events pass E_DAY_VIEW_LONG_EVENT as the day. Fixes SEGV.
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
2000-05-04 21:04:40 +00:00
3283a9fcd3 set the active radio button here. Oops - it wasn't a Bonobo problem after
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
2000-05-02 22:27:45 +00:00