Commit Graph

24 Commits

Author SHA1 Message Date
c7b2533fef Fixed some warnings.
2000-08-09  Christopher James Lahey  <clahey@helixcode.com>

	* cal-client/cal-client.c, gui/e-calendar-table.c, pcs/cal.c:
	Fixed some warnings.

svn path=/trunk/; revision=4637
2000-08-09 05:47:32 +00:00
14e163207e Added a get_objects_in_range() method. Takes in a time range and the type
2000-08-08  Federico Mena Quintero  <federico@helixcode.com>

	* idl/evolution-calendar.idl (Cal): Added a get_objects_in_range()
	method.  Takes in a time range and the type of component we are
	interested in; returns a list of UIDs.  The idea is that
	ocurrences get computed in the client; we can have multiple
	recurrences in iCalendar and we cannot identify them trivially
	across the wire.
	(Cal): Removed the get_events_in_range() method.

	* pcs/cal-backend.c (cal_backend_free_uid_list): New function.
	(cal_backend_get_objects_in_range): New function.
	(cal_backend_get_events_in_range): Removed.

	* pcs/cal-backend-file.c (cal_backend_file_get_objects_in_range):
	Implemented new method.
	(cal_backend_file_get_events_in_range): Removed.

	* pcs/cal.c (Cal_get_events_in_range): Removed.
	(uncorba_obj_type): New function.
	(Cal_get_uids): Use uncorba_obj_type().
	(Cal_get_n_objects): Likewise.
	(Cal_get_objects_in_range): Implemented new method.

	* cal-client/cal-client.c (cal_client_get_events_in_range): Removed.
	(cal_client_get_objects_in_range): Implemented.
	(corba_obj_type): New function.
	(cal_client_get_n_objects): Use corba_obj_type().
	(cal_client_get_uids): Likewise.

svn path=/trunk/; revision=4613
2000-08-08 22:39:13 +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
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
70c974e7d9 server code to service these:
* pcs/cal.c (Cal_get_uid_by_pilot_id):
	(Cal_update_pilot_id):
	* pcs/cal-backend-imc.c (cal_backend_imc_update_pilot_id):
	(cal_backend_imc_get_uid_by_pilot_id):
	* pcs/cal-backend.c (cal_backend_get_uid_by_pilot_id):
	(cal_backend_update_pilot_id):  server code to service these:

	* gui/calendar-pilot-sync.c: updated to make use of cal-client.
	also uses dirty bits on both sides to aid in syncing.

	* cal-client/cal-client.c (cal_client_get_uid_by_pilot_id): new
	function -- ask the cal server to return uid given an object's
	pilot id.
	(cal_client_update_pilot_id): new function -- inform the
	cal server of an objects pilot id and pilot dirty-flag.

svn path=/trunk/; revision=3789
2000-06-29 13:23:44 +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
47c9fef15a New function to add today's alarms for a single object.
2000-05-11  Federico Mena Quintero  <federico@helixcode.com>

	* gui/gnome-cal.c (add_alarms_for_object): New function to add
	today's alarms for a single object.
	(gnome_calendar_object_updated_cb): Update the object's alarms.

	* idl/evolution-calendar.idl (Cal): Added a
	get_alarms_for_object() method.

	* pcs/cal.c (Cal_get_alarms_for_object): Implemented method.

	* pcs/cal-backend.c (cal_backend_get_alarms_for_object): New
	function.

	* pcs/cal-backend-imc.c (cal_backend_imc_get_alarms_for_object):
	Implemented.

	* cal-client/cal-client.c (cal_client_get_alarms_for_object): New
	function.

svn path=/trunk/; revision=3003
2000-05-12 04:16:46 +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
feb0ee231e fixed code to populate the todo clist
* gui/gncal-todo.c (gncal_todo_update): fixed code to populate
	the todo clist

	* cal-client/cal-client.c (cal_client_get_uids): don't check
	type again CALOBJ_TYPE_ANY since it will always match.
	(cal_client_get_uids): same (re: CALOBJ_TYPE_ANY)

	* pcs/cal-backend.c (build_uids_list): same (re: CALOBJ_TYPE_ANY)

	* pcs/cal.c (Cal_get_uids): same (re: CALOBJ_TYPE_ANY)

svn path=/trunk/; revision=2509
2000-04-19 18:46:17 +00:00
8f6adf987e Use ical_object_to_string().
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
2000-03-28 08:05:08 +00:00
cf16aa4fb1 Implemented.
2000-02-17  Federico Mena Quintero  <federico@helixcode.com>

	* cal-client.c (cal_client_remove_object): Implemented.

	* cal.c (cal_notify_remove): Implemented.
	(Cal_remove_object): Implemented.
	(cal_get_epv): Fill in the remove_object field in the epv.

	* cal-backend.c (cal_backend_remove_object): Implemented.
	(notify_remove): New function to notify clients that an object was
	removed.

svn path=/trunk/; revision=1821
2000-02-17 09:21:20 +00:00
d2fe58c568 Implemented.
2000-02-11  Federico Mena Quintero  <federico@helixcode.com>

	* cal-client.c (cal_client_update_object): Implemented.

	* cal.c (cal_notify_update): New function to notify the listener
	about an updated object.
	(Cal_update_object): Implemented.
	(Cal_get_uids): set_release() the sequence to TRUE.
	(Cal_get_events_in_range): Likewise.

	* cal-backend.c (remove_object): New function to remove objects
	from a calendar backend.
	(cal_backend_update_object): New public function to update an
	object and notify clients about it.

	* evolution-calendar.idl (Cal): Added update_object() and
	delete_object() methods.
	(Listener): Removed the obj_changed method and renamed obj_added
	to obj_updated.  We now only have updated and removed notifiers.

	* cal-listener.[ch]: Removed the "changed" notification code.
	Changed the "added" notification code to the "updated"
	notification.

	* cal-client.c: Likewise.

	* tlacuache.c (create_cal_factory): Connect to "destroy" on the
	factory and exit the main loop when the factory is destroyed.

	* cal-factory.c (backend_destroy_cb): New callback used when a
	backend is destroyed.  Removes the backend from the factory's hash
	table and unrefs the factory if all backends go away.
	(add_calendar_client): Free the environment.

	* cal.c (cal_new): Use bonobo_object_unref() if we fail to
	initialize.

	* cal-listener.c (cal_listener_new): Likewise.

	* layout.c (layout_events): Plug li.partition memory leak.

svn path=/trunk/; revision=1742
2000-02-12 02:03:58 +00:00
d8fbc4fc0c Connect to the Cal's destroy signal. (cal_backend_remove_cal): Killed
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
2000-02-11 11:08:08 +00:00
ca082de77a Added get_uids() method to get a list of UIDs based on object types.
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
2000-02-09 08:04:33 +00:00
cc670cb2ca New struct to wrap instances of calendar objects for recurrencies and
2000-02-08  Federico Mena Quintero  <federico@helixcode.com>

	* evolution-calendar.idl (CalObjInstance): New struct to wrap
	instances of calendar objects for recurrencies and alarms.
	(Cal::get_events_in_range): New method to get ocurring and
	recurring events by time range.

	* cal-backend.c (cal_backend_get_events_in_range): New function to
	get a list of event instances in a time range.
	(string_from_ical_object): New internal function.
	(cal_backend_get_object): Use string_from_ical_object() instead of
	doing everything ourselves.
	(cal_backend_get_events_in_range): New function to get a list of
	the events that occur or recur in a specified time range.

	* cal-client.c (cal_client_get_events_in_range): Implemented
	client-side function.

	* cal-util.h:
	* cal-util.c: New files with utilities and types common to the
	client and server parts.
	(CalObjInstance): New structure to hold an instance of an actual
	occurrence, recurrence, or alarm trigger of a calendar object.
	(cal_obj_instance_list_free): New function to free a list of
	calendar object instances.

	* cal.c (Cal_get_events_in_range): Implemented new method.

	* corba-cal.c (cal_repo_get_updated_objects): Free `str' with
	free(), not g_free(), since calendar_get_as_vcal_string() uses
	writeMemVObject(), which uses realloc().  Fixed in gnome-pim as
	well.

svn path=/trunk/; revision=1693
2000-02-08 07:08:29 +00:00
38ca3c828f Sync to laptop - Federico
svn path=/trunk/; revision=1664
2000-02-03 07:16:37 +00:00
9d6fc52249 Added the get_object() method.
2000-02-03  Federico Mena Quintero  <federico@helixcode.com>

	* evolution-calendar.idl (Cal): Added the get_object() method.

	* cal-client.c (cal_client_get_object): New function to get a
	calendar object by its UID.

	* cal.c (Cal_get_object): Implemented.

	* cal-backend.c (cal_backend_get_object): New unfinished backend
	function.  We need some reorganizing of how the calendar objects
	are stored.

svn path=/trunk/; revision=1663
2000-02-02 09:51:20 +00:00
390f24328e Changed the namespace from GNOME::Calendar to Evolution::Calendar.
2000-01-30  Federico Mena Quintero  <federico@helixcode.com>

	* evolution-calendar.idl: Changed the namespace from
	GNOME::Calendar to Evolution::Calendar.
	(Listener::LoadStatus): Fixed SUCESSS -> SUCCESS typo.  And I
	never noticed it in the implementation.  Ain't M-/ grand?

	* Makefile.am: Changed ocurrences of gnome-calendar.idl to
	evolution-calendar.idl.

	* *.[ch]: Changed GNOME_Calendar_foo identifiers to
	Evolution_Calendar_foo.

svn path=/trunk/; revision=1652
2000-01-29 10:48:09 +00:00
9f31ce86ff Make Evolution compile with the latest Bonobo changes.
Make Evolution compile with the latest Bonobo changes.

Miguel.

svn path=/trunk/; revision=1636
2000-01-26 00:04:16 +00:00
32ce476a23 Added the gnome-pilot and capplet checks; they will likely be reworked for
2000-01-24  Federico Mena Quintero  <federico@helixcode.com>

	* configure.in: Added the gnome-pilot and capplet checks; they
	will likely be reworked for the Evolution framework, but for now
	the calendar/ directory needs them.

	* configure.in: Added checks for gnome-vfs.
2000-01-24  Federico Mena Quintero  <federico@helixcode.com>

	* tlacuache.c: New main module for the Tlacuache personal calendar
	server.

	* tlacuache.gnorba: New gnorba file for Tlacuache, the GNOME
	personal calendar server.

	* Makefile.am: Added the stuff necessary to build Tlacuache.

	* cal.c (Cal_get_uri): Convert the URI to a string before
	returning it.

	* cal-factory.c (CalFactory_create): Doh, this function is void.

	* job.c (job_add): Use g_idle_add(), not gtk_idle_add().

svn path=/trunk/; revision=1623
2000-01-25 03:17:54 +00:00
13429d5ff1 New function to remove a calendar client interface object from a backend.
2000-01-24  Federico Mena Quintero  <federico@helixcode.com>

	* cal-backend.c (cal_backend_remove_cal): New function to remove a
	calendar client interface object from a backend.
	(cal_backend_load): Convert the URI to string and use
	Parse_MIME_FromFileName().  The conversion is not very smart,
	though.

	* cal-factory.c (load_backend): Moved most of the error handling
	upstream to load_fn().
	(load_fn): Handle failure in case the backend could not be loaded.
	(cal_factory_destroy): Free the backends and the backend hash
	table.
	(add_calendar_client): Implemented.  We create a Cal client
	interface object and attach it to the backend, and we notify the
	listener.

svn path=/trunk/; revision=1618
2000-01-24 08:40:57 +00:00
bd4e64bd78 Moved the calendar backend here. This is the actual calendar-handling
2000-01-18  Federico Mena Quintero  <federico@helixcode.com>

	* cal-backend.c cal-backend.h: Moved the calendar backend here.
	This is the actual calendar-handling object.
	(load_from_vobject): Moved over from calendar.c.  Modified to use
	a CalBackend instead of the old Calendar structure.
	(add_object): Likewise.

	* cal.c: Now the Cal object is just a calendar client interface
	object; we use it as a "viewport" onto a CalBackend.  This also
	lets us do correct resource management.

	* cal-common.h: New file with common forward declarations; we
	can't have circular dependencies between headers.

2000-01-18  Federico Mena Quintero  <federico@helixcode.com>

	* cal-factory.c (cal_factory_load): Queue a load job.
	(load_fn): Load job handler.  Lookup the calendar by URI, load it
	if it is not loaded, or just report it to the new listener if it is.

	* job.c job.h: New files with a simple job queue manager.

	* gnome-calendar.idl (Listener::cal_loaded): Do not return the
	whole calendar object string.  The client will be able to query
	the calendar for the events it needs.

	* cal-listener.c (Listener_cal_loaded): Ref the calendar GNOME
	object.  We unref it when the listener is destroyed.

2000-01-17  Federico Mena Quintero  <federico@helixcode.com>

	The files from the gncal directory of the gnome-pim module on CVS
	were moved here, to evolution/calendar, in preparation for the
	Evolution work.  The calendar is being split into a model/view
	architecture.  The model is a personal calendar server (PAS):  it
	provides storage, notification, and event generation; the
	views/controllers are the calendar user agents and things like
	Pilot synchronizers.

svn path=/trunk/; revision=1591
2000-01-19 03:32:45 +00:00
f3c94fc0f4 Removed the CORBA listener methods, adjusted for the new IDL.
2000-01-11  Federico Mena Quintero  <federico@helixcode.com>

	* cal.c: Removed the CORBA listener methods, adjusted for the new
	IDL.

	* cal-listener.c (cal_listener_init): Create the private
	structure.  In it we hold a reference to the calendar the listener
	is watching.
	(cal_listener_destroy): Destroy the private structure and unref
	the calendar.
	(Listener_cal_loaded): Stuff the calendar into our private data.
	(Listener_obj_added): Adjusted for new IDL.
	(Listener_obj_removed): Likewise.

svn path=/trunk/; revision=1560
2000-01-12 04:13:36 +00:00
edcdb20688 New IDL for the personal calendar server.
2000-01-11  Federico Mena Quintero  <federico@helixcode.com>

	* gnome-calendar.idl: New IDL for the personal calendar server.

	* cal.h cal.c: New files with the calendar object.

	* cal-listener.h cal-listener.c: New files with the calendar
	listener object.

	* cal-factory.h cal-factory.c: New files with the calendar factory
	object.

svn path=/trunk/; revision=1555
2000-01-12 01:36:56 +00:00