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-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 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-02-18 Miguel de Icaza <miguel@nuclecu.unam.mx>
* Makefile.am (INCLUDES): Use BONOBO_VFS_GNOME_CFLAGS instead of
GNOMEUI_INCLUDES, as we use Bonobo and VFS.
svn path=/trunk/; revision=1847
* cal-backend.h: moved CalendarFormat type def here
* cal-backend.c (cal_backend_load): if extension suggests
an ical file, attempt to load an iCal file.
(cal_get_type_from_filename): returns CAL_ICAL if file
extension is 'ics' or 'ifb', else returns CAL_VCAL
(icalendar_calendar_load): moved this here from
icalendar.c because it needs to call the static function
add_object.
svn path=/trunk/; revision=1831
2000-02-16 Russell Steinthal <rms39@columbia.edu>
* calobj.[ch], eventedit.c, main.c: Change iCalObject.organizer
from char* to iCalPerson*
* calobj.[ch]: Change iCalObject.related from list of char* to
list of iCalRelation*; assorted related fixes
* icalendar.c: interface between libical and the gnomecal
internal representation
svn path=/trunk/; revision=1791
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-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-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-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-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-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-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
day was skipped.
Also fixed problem with multiple setitimer calls that where especially
pesky in the corba part, where corba calls would cause numerous alarm
dialogs when the events alarm went off.
svn path=/trunk/; revision=1525
1999-12-10 Russell Steinthal <rms39@columbia.edu>
* eventedit.c (ee_create_ae): Fix sensitivity bug when used to
create default alarm box (widgets in that box should always be
sensitive, even if the enabled checkbutton is not set)
svn path=/trunk/; revision=1479
* calendar-conduit-control-applet.c (setSettings): Capplets now
sets first_sync on enable, this should make the conduit copy old
entries from the pilot to gnomecal.
svn path=/trunk/; revision=1476
* calendar-conduit.c (pre_sync): Check if local store is
empty. If, force slow sync.
* GnomeCal.idl (GNOME): Added get_number_of_objects.
* corba-cal.c (cal_repo_get_number_of_objects): implemented the
get_number_of_objects.
* calendar-conduit-control-applet.c (setStateCfg): Fixed bug that
caused the capplet to always set the sync action to Disable upon start.
svn path=/trunk/; revision=1475
gnome-pim-conduit-%ver.%arch.rpm, containing the Gnome Pilot conduits.
Modded makefile.am so the conduit capplets also appear on the main menu.
svn path=/trunk/; revision=1462
Note: Per discussion on calendar-list, checks to see that timeout value is
reasonable, i.e. between 1 and MAX_AALARM_TIMEOUT (set to 3600 seconds). Check
is enforced by GtkSpinButton in property box and the patch when loading from
disk.
svn path=/trunk/; revision=1384
process repeats the next day.
This fixes a bug by which alarms would mysteriously stop working after gnomecal was running for its second midnight.
svn path=/trunk/; revision=1380
1999-11-09 Eskil Heyn Olsen <deity@eskil.dk>
* calendar-conduit.c: Enabled debug output. Sets a g_log_domain,
now version 0.8.5. Consistent use of GSList/GList. Implemented
compare, default uses one that compares the contents of a struct
Appointment, but also has #ifdeffed code that does a field level
comparison, not complete, but perhaps educational.
* Makefile.am (#todo_conduit_control_applet_SOURCES): Fixed an
unwanted conditional on libcalendar_conduit_la_LDFLAGS
svn path=/trunk/; revision=1376
1999-11-04 Eskil Olsen <deity@eskil.dk>
* Makefile.am: Uses the PISOCK_LIBDIR, for people with odd install
dirs for their pilot-link. Also install a pretty icon for the
calendar-conduit.
* calendar-conduit-control-applet.c: Modfied the
try/revert/ok/cancel scheme to be more intuitive, also uses a
GtkOptionMenu for the possible sync methods.
* calendar-conduit-control-applet.desktop: use the nice icon...
* calendar-conduit.c: Ack, had to define debug_alarms and
alarm_default, otherwise they are undefined. Is gncal code messy
or is this considered a way of configuring the cal engine ?
Implemented delete_all syncabs methods.
* calendar-pilot-sync.c: also had to declare debug_alarms and
alarm_defaults, just as ugly.
svn path=/trunk/; revision=1367
Since there are now some calls from prop.c into previously static functions in
eventedit.c, the code in those files should probably be reorganized. Perhaps a
new alarm-utils.c file? In any case, this commits working code to the
repository before we reorganize.
svn path=/trunk/; revision=1366