aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/cal-factory.c
Commit message (Collapse)AuthorAgeFilesLines
* Implemented.Federico Mena Quintero2000-02-121-4/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Connect to the Cal's destroy signal. (cal_backend_remove_cal): KilledFederico Mena Quintero2000-02-111-18/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-02-10 Federico Mena Quintero <federico@helixcode.com> * cal-backend.c (cal_backend_add_cal): Connect to the Cal's destroy signal. (cal_backend_remove_cal): Killed function now that removal of Cal objects is done in their destroy callback. (cal_destroy_cb): New callback to remove a Cal from the backend's list of clients. Also, the backend destroys itself when there are no more clients connected to it. (save): New placeholder function to save a backend. (destroy): New function to destroy a backend's data. (cal_backend_destroy): Save the calendar and destroy it. * cal.c (cal_destroy): Reset the priv->backend to NULL. * cal-factory.c (add_calendar_client): There is no need to call cal_backend_remove_cal(); we can now just destroy the Cal object. (create_fn): Make sure we always unref the URI. (load_fn): Move the URI unref to the end of the function for safety. * cal-factory.c (add_calendar_client): Unref the Cal only if notification of the listener was unsuccessful. Otherwise, the calendar user agent (Listener side) keeps the reference. * tl-test.c (list_uids): Free the calobj. * cal-client.c (cal_loaded_cb): Use bonobo_object_unref() to get rid of the listener. (load_or_create): Likewise. (destroy_factory): New function to get rid of the factory. (destroy_listener): New function to get rid of the listener. (destroy_cal): New function to get rid of the calendar client interface object. (cal_client_destroy): Free all resources. (cal_client_get_object): CORBA_free() the calobj string. Boy, I love memprof. * cal-listener.c (cal_listener_destroy): Reset the priv->cal to CORBA_OBJECT_NIL. * cal-backend.c (cal_backend_remove_cal): Do not unref the Cal, since the calendar user agent owns it. (cal_backend_add_cal): Do not ref the Cal, since the calendar user agent owns it. * cal-factory.c (add_calendar_client): Use bonobo_object_unref() to get rid of the calendar client interface object. * calobj.c (ical_object_create_from_vobject): Duplicate the default "PUBLIC" string. 2000-02-09 Federico Mena Quintero <federico@helixcode.com> * cal-factory.c (cal_factory_load): Added documentation comment. (load_fn): Do not print a message if the backend could not be loaded due to a non-fatal error. (queue_load_create_job): Moved the stuff from cal_factory_load() to here. Now this function serves to queue load or create requests. (cal_factory_load): Use queue_load_create_job(). (cal_factory_create): Implemented; use queue_load_create_job(). (create_fn): New job handler for creating new calendars. (create_backend): New function to create a new backend with a new calendar. (add_backend): New helper function to add backends to the factory's hash table. (load_backend): Use add_backend() instead of adding the backend by ourselves. * cal-client.c (load_or_create): Moved the functionality from cal_client_load_calendar() to here, and added an option to create a new calendar instead of loading an existing one. (cal_client_load_calendar): Use load_or_create(). (cal_client_create_calendar): Implemented. * cal-backend.c (cal_backend_create): Implemented. * evolution-calendar.idl (LoadStatus): Added an IN_USE error for create requests. * cal-listener.h (CalListenerLoadStatus): Added CAL_LISTENER_LOAD_IN_USE. * cal-listener.c (Listener_cal_loaded): Convert the IN_USE error. * cal-client.h (CalClientLoadStatus): Added CAL_CLIENT_LOAD_IN_USE. * cal-client.c (cal_loaded_cb): Handle CAL_LISTENER_LOAD_IN_USE. * tl-test.c: New test program for the calendar client side; it also exercises the server side by sending commands to it. * Makefile.am: Added the tl-test program. * tlacuache.gnorba: Updated. * tlacuache.c (create_cal_factory): Use the right GOAD id. * cal-client.c (cal_client_construct): Use the right GOAD id. svn path=/trunk/; revision=1732
* Added the get_object() method.Federico Mena Quintero2000-02-021-2/+2
| | | | | | | | | | | | | | | | | 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
* Changed the namespace from GNOME::Calendar to Evolution::Calendar.Federico Mena Quintero2000-01-291-37/+37
| | | | | | | | | | | | | | | | | 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
* Make Evolution compile with the latest Bonobo changes.Arturo Espinosa2000-01-261-13/+13
| | | | | | | | Make Evolution compile with the latest Bonobo changes. Miguel. svn path=/trunk/; revision=1636
* Check that the listener is not nil and emit and exception if it is.Federico Mena Quintero2000-01-251-6/+35
| | | | | | | | | | | | | | | | | 2000-01-25 Federico Mena Quintero <federico@helixcode.com> * cal-factory.c (CalFactory_load): Check that the listener is not nil and emit and exception if it is. * gnome-calendar.idl (CalFactory::load CalFactory::create): Now these raise the NilListener exception. * tlacuache.c (calendar_notify): Error stub for alarms. (alarm_defaults): Stub array. (debug_alarms): Stub variable. (main): Initialize gnome-vfs. svn path=/trunk/; revision=1627
* Added the gnome-pilot and capplet checks; they will likely be reworked forFederico Mena Quintero2000-01-251-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* New function to remove a calendar client interface object from a backend.Federico Mena Quintero2000-01-241-38/+112
| | | | | | | | | | | | | | | | | | | | | 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
* Take in a GnomeVFSURI, not a string.Federico Mena Quintero2000-01-221-6/+39
| | | | | | | | | | | | | | | | | | | | | | | | 2000-01-22 Federico Mena Quintero <federico@helixcode.com> * cal-backend.c (cal_backend_load): Take in a GnomeVFSURI, not a string. * cal-listener.c (Listener_cal_loaded): Pass the load status to the signal. (cal_listener_destroy): Better error checking. (cal_listener_new): Better error checking. * cal-listener.h (CalListenerLoadStatus): New enum for the load status of a calendar. (CalListenerClass): Added the status argument to the cal_loaded signal. * gnome-calendar.idl (cal_loaded): Added a load status code. * cal-backend.h (CalBackendLoadStatus): Renamed from CalBackendLoadResult. svn path=/trunk/; revision=1607
* Moved the calendar backend here. This is the actual calendar-handlingFederico Mena Quintero2000-01-191-21/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Sync, take two - FedericoArturo Espinosa2000-01-181-0/+1
| | | | svn path=/trunk/; revision=1588
* Sync - FedericoArturo Espinosa2000-01-181-5/+111
| | | | svn path=/trunk/; revision=1585
* New IDL for the personal calendar server.Federico Mena Quintero2000-01-121-0/+272
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