Commit Graph

60 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
08f484c660 tlauche is now called wombat
svn path=/trunk/; revision=4538
2000-08-04 23:35:02 +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
86ec303a21 Docs docs docs - Federico
svn path=/trunk/; revision=4206
2000-07-17 23:57:22 +00:00
fab3b8e23e Fixed inline docs. (cal_client_new): Ditto.
2000-07-17  Federico Mena Quintero  <federico@helixcode.com>

	* cal-client/cal-client.c (cal_client_get_object): Fixed inline
	docs.
	(cal_client_new): Ditto.

svn path=/trunk/; revision=4190
2000-07-17 18:52:02 +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
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
a3a3ee2b14 Sync - Federico
svn path=/trunk/; revision=3693
2000-06-22 17:24:17 +00:00
105dd5c5f6 Fix compilation with builddir != srcdir.
svn path=/trunk/; revision=3630
2000-06-19 05:56:31 +00:00
98ee88c416 Fix to not depend on installed ical.h
* cal-client/Makefile.am (INCLUDES): Fix to not depend on
	installed ical.h

svn path=/trunk/; revision=3622
2000-06-17 23:26:08 +00:00
ef4fb079a4 Doh, sync - Federico
svn path=/trunk/; revision=3593
2000-06-16 07:07:02 +00:00
73358f50a1 finish switch back to vcal
svn path=/trunk/; revision=3556
2000-06-14 04:19:29 +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
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
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
8160d7388e CalBackendClass now is just an interface for calendar backends; this is an
2000-05-08  Federico Mena Quintero  <federico@helixcode.com>

	* pcs/cal-backend.h (CalBackendClass): CalBackendClass now is just
	an interface for calendar backends; this is an abstract class.
	Put in the vtable for the backend methods.

	* pcs/cal-backend.c (cal_backend_new): Removed function, since
	CalBackend is not just an abstract class.
	Removed implementation-specific functions and made public
	functions call the virtual methods instead.

	* pcs/cal-backend-imc.[ch]: New files with the CalBackendIMC
	implementation; this implements a backend for iCalendar and
	vCalendar files.  Moved the implementation-specific stuff from
	cal-backend.[ch] to here.

	* pcs/cal-backend-imc.c (CalendarFormat): Moved enumeration to
	here.  Added a CAL_UNKNOWN value for when the backend is not
	loaded yet.
	(cal_backend_imc_init): Initialize priv->format as CAL_UNKNOWN.
	(save_to_vcal): Use the same VCProdIdProp value as in
	cal-util/calobj.c.  Use "1.0" as the VCVersionProp as per the
	vCalendar spec.
	(ensure_uid): Return nothing, since the result value need not be
	used anymore.
	(add_object): Since we mark the calendar as dirty anyways, we do
	not need to check the result value of ensure_uid() anymore.
	(remove_object): Asssert that we know how to handle the object's
	type.  We do this in add_object() anyways.

	* pcs/Makefile.am (libpcs_a_SOURCES): Added cal-backend-imc.[ch].

	* gui/gnome-cal.c: Replaced debugging printf()s with g_message()
	so that we can see the line number where they occur.

	* gui/gnome-cal.c (gnome_calendar_load_cb): Sort of handle the
	LOAD_METHOD_NOT_SUPPORTED result code, and added a default for the
	switch.

	* cal-client/cal-listener.h (CalListenerLoadStatus): Removed
	enumeration; it is stupid to translate all values for the
	CalClient when it is going to translate them again.
	(CalListenerClass::cal_loaded): This signal now passes the
	LoadStatus directly from the CORBA side.

	* cal-client/cal-listener.c (Listener_cal_loaded): Do not
	translate the status value.

	* cal-client/cal-client.h (CalClientLoadStatus): Added the
	CAL_CLIENT_LOAD_METHOD_NOT_SUPPORTED error code.

	* cal-client/cal-client.c (cal_loaded_cb): Translate the CORBA
	version of the LoadStatus result code.

	* pcs/cal-factory.c (CalFactoryPrivate): New methods field for the
	hash table from method strings to the GtkTypes for backend class
	types.
	(cal_factory_init): Create the priv->methods hash table.
	(cal_factory_destroy): Free the priv->methods hash table.
	(cal_factory_register_method): New function to register a backend
	class for a particular URI method.
	(launch_backend_for_uri): New function to launch a backend for a
	particular URI's method.
	(load_backend): Use launch_backend_for_uri().  Move the error
	notification code from load_fn() to here.
	(create_backend): Use launch_backend_for_uri().  Move the error
	notification code form create_fn() to here; it is #ifdefed out
	since currently cal_backend_create() does not have any error
	reporting capabilities.

	* idl/evolution-calendar.idl (Listener::LoadStatus): Added a
	PROTOCOL_NOT_SUPPORTED error code.

	* pcs/cal-factory.c (cal_factory_load cal_factory_create): Removed
	functions, since they were supposed to be internal only.
	(CalFactory_load): Call queue_load_create_job() directly.
	(CalFactory_create): Likewise.

svn path=/trunk/; revision=2921
2000-05-08 16:58:27 +00:00
1b8139c995 ignore the .pure directory
* addressbook/backend/ebook/.cvsignore,
        addressbook/contact-editor/.cvsignore,
        addressbook/gui/component/.cvsignore,
        addressbook/gui/minicard/.cvsignore,
        addressbook/printing/.cvsignore,
        calendar/cal-client/.cvsignore,
        calendar/gui/.cvsignore,
        calendar/pcs/.cvsignore,
        filter/.cvsignore,
        mail/.cvsignore,
        shell/.cvsignore,
        tests/.cvsignore,
        widgets/e-table/.cvsignore,
        widgets/e-text/.cvsignore,
        widgets/meeting-time-sel/.cvsignore,
        widgets/shortcut-bar/.cvsignore,
        wombat/.cvsignore: ignore the .pure directory

svn path=/trunk/; revision=2812
2000-05-05 11:46:46 +00:00
9483369aa0 Made Evolution OAF-compatible.
svn path=/trunk/; revision=2673
2000-04-28 04:23:19 +00:00
b3674f3251 The Joy of Broken Makefiles Part #3.
svn path=/trunk/; revision=2614
2000-04-25 19:54:44 +00:00
1b7d0bc8c2 The path to the test calendar changed when we moved stuff around. Users
2000-04-24  Federico Mena Quintero  <federico@helixcode.com>

	* cal-client/client-test.c (main): The path to the test calendar
	changed when we moved stuff around.  Users will have to tweak this
	for their CVS setup, anyways.
	(create_client): Create or load the calendar as appropriate.
	(client_destroy_cb): Exit the main loop if both clients are gone.
	(main): Connect to the "destroy" signal of the clients so that we
	can terminate the test program.

svn path=/trunk/; revision=2597
2000-04-25 01:39:05 +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
75f8b00ea0 Renamed library from libcalutil to libcal-util, to be consistent with
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
2000-04-16 19:25:56 +00:00
ce3b224ed6 build test-calendar-widget and evolution-calendar, common stuff is in a
* gui/Makefile.am: build test-calendar-widget and evolution-calendar,
        common stuff is in a library

        * gui/gnome-cal.c (gnome_calendar_get_type): made the calendar widget
        based on a gtk_frame rather than a gnome_app

        * gui/calendar-commands.c: split out some of main.c

        * gui/evolution-calendar-control.c: bonobo bung so evolution
        can use the calendar widget

svn path=/trunk/; revision=2294
2000-04-05 20:13:45 +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
67bf862108 Fix for srcdir != builddir.
* 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
2000-03-17 21:12:14 +00:00
6e515d204a Removed function now that it is no CORBA server in the GUI.
2000-03-12  Federico Mena Quintero  <federico@helixcode.com>

	* gui/main.c (gnome_calendar_locate): Removed function now that it
	is no CORBA server in the GUI.
	(save_default_calendar): Removed function.  Now the personal
	calendar server will take care of saving modified calendars when
	appropriate.
	(close_cmd): Do not call unregister_calendar_services().

	* gui/eventedit.c (ee_ok): Do not save the calendar.

	* gui/gncal-day-panel.c (day_view_range_activated): Likewise.

	* gui/gncal-todo.c (ok_button): Likewise.
	(delete_todo): Likewise.

	* gui/gncal-full-day.c (delete_occurance): Likewise.
	(delete_appointment): Likewise.
	(unrecur_appointment): Likewise.
	(child_focus_out): Likewise.
	(update_from_drag_info): Likewise.

	* gui/gnome-cal.c (gnome_calendar_new): Removed obsolete call to
	create the CORBA server.

	* gui/gnome-cal.h (GnomeCalendar): Renamed `calc' field to
	`client'.

	* cal-client/cal-client.h (CalClient): Removed filename and
	corba_server fields.

svn path=/trunk/; revision=2102
2000-03-12 08:37:12 +00:00
873dfc7f89 replaced "Calendar *cal" with "CalClient *calc" in the GnomeCalendar
* 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
2000-03-09 14:25:56 +00:00
6dd08625fa track movement of calobj.[ch]
svn path=/trunk/; revision=2086
2000-03-08 04:11:48 +00:00
4363d9ab22 back out recent commit
svn path=/trunk/; revision=2082
2000-03-08 02:54:55 +00:00
a59dc84820 More file moving - Federico
svn path=/trunk/; revision=2080
2000-03-08 02:50:27 +00:00
34eff34dd9 stubs for client side access to alarm structures. this will probably
* 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
2000-03-06 00:10:24 +00:00
ddf79d1893 added some .cvsignore files
svn path=/trunk/; revision=2033
2000-03-04 04:01:31 +00:00
c6c65136bb new file -- things shared between the client and server go in this
* 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
2000-03-04 03:58:38 +00:00
da08b761fb At this point the calendar client and personal calendar server files were
2000-03-02  Federico Mena Quintero  <federico@helixcode.com>

	At this point the calendar client and personal calendar server
	files were moved to the idl/, cal-client/, and pcs/ directories.

	* idl/Makefile.am: New file.

	* cal-client/Makefile.am: New file.  Moved the libcal-client stuff
	from calendar/Makefile.am to here.

	* pcs/Makefile.am: New file.  Moved the tlacuache stuff from
	calendar/Makefile.am to here.

	* Makefile.am (SUBDIRS): Added the idl and cal-client directories.

	* calendar.h: Removed the references to cal-backend.h and its
	stuff.  This file is going away soon!

	* icalendar.c: #include <config.h>.  Also, we don't need to
	include cal-backend.h or gnome.h.

	* icalendar.h: Protect from multiple inclusions.

svn path=/trunk/; revision=2011
2000-03-02 06:52:53 +00:00
5f3b7f20ce More reorganization - Federico
svn path=/trunk/; revision=2009
2000-03-02 00:45:51 +00:00
e5f5fa0956 Moved to the pcs/ directory - Federico
svn path=/trunk/; revision=2005
2000-03-01 23:45:03 +00:00
3f2e2c0627 At this point the calendar client and personal calendar server files were
2000-03-01  Federico Mena Quintero  <federico@helixcode.com>

	At this point the calendar client and personal calendar server
	files were moved to the idl/, cal-client/, and pcs/ directories.

	* idl/Makefile.am: New file.

	* cal-client/Makefile.am: New file.  Moved the libcal-client stuff
	from calendar/Makefile.am to here.

	* Makefile.am (SUBDIRS): Added the idl and cal-client directories.

svn path=/trunk/; revision=2003
2000-03-01 22:31:11 +00:00
84757ca4db Use the gnome-config flags for orbit-idl. Create a libcal-client library
2000-03-01  Federico Mena Quintero  <federico@helixcode.com>

	* Makefile.am: Use the gnome-config flags for orbit-idl.
	Create a libcal-client library with the calendar client object.

svn path=/trunk/; revision=2000
2000-03-01 21:13:26 +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
055e3b0fa9 Added inline documentation comment - Federico
svn path=/trunk/; revision=1703
2000-02-09 09:11:21 +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
6cb60b68f1 Add the files, stupid me - Federico
svn path=/trunk/; revision=1694
2000-02-08 08:22:05 +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
5d56cdb0b3 New function to create the base VObject for a calendar.
2000-02-04  Federico Mena Quintero  <federico@helixcode.com>

	* cal-backend.c (get_calendar_base_vobject): New function to
	create the base VObject for a calendar.
	(cal_backend_get_object): Create the base calendar and add the
	sought object to it, then stringify it.

	* evolution-calendar.idl (Listener::obj_added
	Listener::obj_changed): Now these pass in just the UIDs, not the
	complete objects.

	* cal-listener.c (Listener_obj_added): Changed to pass in the uid,
	not the object.
	(Listener_obj_changed): Likewise.

	* cal-client.h (CalClientClass): Made the obj_added and
	obj_changed signals take in the UIDs, not the full objects.

	* cal-client.c (obj_added_cb): Likewise.
	(obj_changed_cb): Likewise.

svn path=/trunk/; revision=1666
2000-02-04 04:42:34 +00:00