Commit Graph

82 Commits

Author SHA1 Message Date
96b11a7e66 fixed it so it doesn't crash when a URL is loaded.
2000-07-23  Damon Chaplin  <damon@helixcode.com>

	* cal-util/calobj.c (ical_object_create_from_vobject): fixed it so
	it doesn't crash when a URL is loaded.

	* cal-util/calobj.h: added a few more fields.

svn path=/trunk/; revision=4280
2000-07-23 11:05:52 +00:00
ef4fb079a4 Doh, sync - Federico
svn path=/trunk/; revision=3593
2000-06-16 07:07:02 +00:00
a304d83907 switch back to vcal for debugging
svn path=/trunk/; revision=3555
2000-06-14 03:55:31 +00:00
1396db5dc3 Allow for NULL summaries.
2000-06-08  Federico Mena Quintero  <federico@helixcode.com>

	* cal-util/calobj.c (ical_object_to_vobject): Allow for NULL
	summaries.

svn path=/trunk/; revision=3478
2000-06-08 16:28:39 +00:00
d96e01691f put this back in, it's still used in
* cal-util/calobj.c (ical_object_find_in_string): put this back in,
	it's still used in cal-backend-imc.c:cal_backend_imc_update_object

svn path=/trunk/; revision=3466
2000-06-07 20:10:39 +00:00
35c55267f2 instead of returning a text representation, decode the text and return an
* cal-client/cal-client.c (cal_client_get_object): instead of
	returning a text representation, decode the text and return an
	iCalObject.  Also added CalClientGetStatus which indicates
	success or type of failure.

	* cal-util/calobj.c (ical_object_find_in_string): #ifed out
	ical_object_find_in_string since it is unused now.

	* cal-client/client-test.c (list_uids): track get_object change
	* gui/calendar-commands.c (calendar_iterate): same
	* gui/e-day-view.c (e_day_view_update_event): same
	* gui/e-week-view.c (e_week_view_update_event): same
	* gui/print.c (print_day_details): same
	(print_day_summary): same
	(print_todo_details): same
	* gui/gnome-cal.c (trigger_alarm_cb): same
	* gui/gncal-todo.c (gncal_todo_update): same

svn path=/trunk/; revision=3463
2000-06-07 19:59:48 +00:00
c219c79496 fixed a bunch of problems use libical instead of libversit
* cal-util/icalendar.c, icalendar-save.c: fixed a bunch of problems
	* cal-util/calobj.c (ical_object_find_in_string): use libical
	instead of libversit
	(ical_object_to_string): same
	(dump_icalobject): prints the contents of an icalobject for debugging

	* gui/Makefile.am (LINK_FLAGS): link libical.a instead of libical.la
	so we don't have to modify the build system of the released libical
	* cal-client/Makefile.am (client_test_LDADD): same
	* cal-util/Makefile.am (icalendar_test_LDADD): same

svn path=/trunk/; revision=3446
2000-06-06 21:56:20 +00:00
ae33d3f67e Removed from the public header; made static. Now everyone should use
2000-06-06  Federico Mena Quintero  <federico@helixcode.com>

	* cal-util/calobj.c (ical_object_destroy): Removed from the public
	header; made static.  Now everyone should use refcounting.

	* pcs/cal-backend-imc.c (free_ical_object): Use
	ical_object_unref().
	(remove_object): Likewise.

svn path=/trunk/; revision=3439
2000-06-06 18:15:57 +00:00
4eb47f9a46 new files to implement iCalendar recurrence rules. These are only part
2000-05-20  Damon Chaplin  <damon@helixcode.com>

        * cal-util/cal-recur.[hc]: new files to implement iCalendar recurrence
        rules. These are only part finished, but people may like to check that
        the architecture seems OK.

2000-05-17  Damon Chaplin  <damon@helixcode.com>

        * gui/e-day-view.c (e_day_view_on_delete_occurrence):
        * gui/e-week-view.c (e_week_view_on_delete_occurrence): use a copy of
        the iCalObject so we detect the change in the "update_event" callback.
        Maybe we should just update the view ourselves and then we wouldn't
        need to detect any change in the callback.

        * cal-util/calobj.c (ical_object_reset_recurrence): new function to
        get rid of any recurrence rules. Used when we 'unrecur' an event.

        * gui/e-day-view.c (e_day_view_key_press): don't add a new event if it
        won't fit, or we end up adding a new event for each key press.
        (e_day_view_update_event_label): don't update it if it doesn't have
        an EText item (i.e. it isn't visible).

        * gui/e-day-view-time-item.c: allow selection of times using this
        column.

svn path=/trunk/; revision=3144
2000-05-20 10:38:19 +00:00
725e254d72 Added version and availability of required libunicode library.
2000-05-10  Matt Loper  <matt@helixcode.com>

	* README: Added version and availability of required libunicode
	library.

2000-05-10  Dan Winship  <danw@helixcode.com>

	* configure.in: Update versions needed for gnome-print, bonobo,
	and gtkhtml.

2000-05-10  Christopher James Lahey  <clahey@helixcode.com>

	* HACKING: We need a HACKING file.

2000-05-10  Christopher James Lahey  <clahey@helixcode.com>

svn path=/trunk/; revision=3008
2000-05-12 23:15:04 +00:00
c2dde9ab64 don't set the ico->uid to NULL or we won't find any other occurrences of
2000-05-08  Damon Chaplin  <damon@helixcode.com>

        * gui/e-week-view.c (e_week_view_remove_event_cb):
        * gui/e-day-view.c (e_day_view_remove_event_cb): don't set the ico->uid
        to NULL or we won't find any other occurrences of the event. Set the
        editing_event_day/num to -1 instead.

        * gui/e-week-view-event-item.c (e_week_view_event_item_draw): fixed the
        positioning of the icons for long events.

        * cal-util/calobj.c (ical_object_normalize_summary): forgot to
        terminate the string.

svn path=/trunk/; revision=2920
2000-05-08 16:37:31 +00:00
9b57702d4d finish editing event when user hits Return key.
2000-05-06  Damon Chaplin  <damon@helixcode.com>

        * gui/e-day-view.c:
        * gui/e-week-view.c: finish editing event when user hits Return key.
        (e_week_view_on_text_item_event): stop event signals after doing any
        other calls, since otherwise it will also stop any other resulting
        event signals.

        * gui/e-week-view-event-item.c (e_week_view_event_item_draw): don't
        draw the start/end times while editing.

        * gui/eventedit.c: changed the Summary field to a GtkEntry, since we
        now only want a single line of text.

        * cal-util/calobj.c (ical_object_normalize_summary): new function to
        convert the summary field to a single line of text, by converting any
        sequence of CR & LF characters to a single space.
        (ical_object_create_from_vobject): call the above function. I think
        all functions that load iCalObjects go through this.
        (ical_new): called it here as well just in case.

svn path=/trunk/; revision=2827
2000-05-06 16:47:27 +00:00
10ee8953e2 added guint ref_count to iCalObject struct, and ical_object_ref/unref()
2000-05-06  Damon Chaplin  <damon@helixcode.com>

        * cal-util/calobj.[hc]: added guint ref_count to iCalObject struct,
        and ical_object_ref/unref() functions. I've updated all the gui/
        stuff to use ref_counts but I haven't touched the pcs/ stuff. Maybe
        just using ical_object_destroy() is OK there.

        * gui/gncal-todo.c:
        * gui/calendar-commands.c:
        * gui/eventedit.c:
        * gui/e-week-view.c:
        * gui/e-day-view.c: use refcounting for iCalObjects.

        * gui/e-day-view-main-item.c:
        * gui/e-day-view-top-item.c:
        * gui/e-day-view.c: try not to ever draw outside the event, even when
        the event is very small.

2000-05-05  Damon Chaplin  <damon@helixcode.com>

        * gui/e-day-view.c: don't allow recurring events to be resized or
        dragged, and don't show the resize/drag cursors. Actually it may be
        better to let the user do the resize/drag and then ask them what they
        want to do - change the single occurrence or the entire series.

        * gui/e-day-view-time-item.c (e_day_view_time_item_show_popup_menu):
        use e_auto_kill_popup_menu_on_hide() to destroy the popup menu.

        * gui/popup-menu.c: include e-gui-utils.h

svn path=/trunk/; revision=2823
2000-05-06 10:43:14 +00:00
ea787be718 for the long events pass E_DAY_VIEW_LONG_EVENT as the day. Fixes SEGV.
2000-05-04  Damon Chaplin  <damon@helixcode.com>

	* gui/e-day-view.c (e_day_view_foreach_event_with_uid): for the long
	events pass E_DAY_VIEW_LONG_EVENT as the day. Fixes SEGV.

	* gui/calendar-commands.c: when we switch views, grab the focus.

	* gui/gnome-cal.c (gnome_calendar_tag_calendar):
	(gnome_calendar_mark_gtk_calendar_day): changed this so it uses
	cal_client_get_events_in_range(), and doesn't load any objects.
	Also just return if it isn't visible.

	* gui/calendar-commands.c (calendar_get_events_in_range): call
	g_list_sort() to sort the list rather than g_list_insert_sorted() for
	each element. It is much more efficient.
	Also changed it so that the co->ev_start/end fields are copied from
	the CalObjInstance rather than the parameters to the function
	(that is right, isn't it?)
	Also freed the list elements, and finally the list.
	(calendar_iterate): changed this to use cal_client_get_events_in_range
	since that is more efficient than getting all the uids and then loading
	and parsing all the events.

	* pcs/cal-backend.c (save): output the '... saved' message before
	freeing the string!

	* gui/gncal-todo.c (gncal_todo_update):
	* gui/e-week-view.c (e_week_view_update_event):
	* gui/e-day-view.c (e_day_view_update_event):
	* gui/calendar-commands.c (calendar_get_events_in_range):
	(calendar_iterate): free obj_string after it is parsed.

svn path=/trunk/; revision=2802
2000-05-04 21:04:40 +00:00
3283a9fcd3 set the active radio button here. Oops - it wasn't a Bonobo problem after
2000-05-02  Damon Chaplin  <damon@helixcode.com>

        * gui/calendar-commands.c (calendar_control_activate): set the active
        radio button here. Oops - it wasn't a Bonobo problem after all.

        * gui/popup-menu.c (popup_menu): added call to
        e_auto_kill_popup_menu_on_hide() to destroy the menu.

        * gui/e-week-view.c (e_week_view_show_popup_menu):
        * gui/e-day-view.c (e_day_view_on_event_right_click): ico->user_data
        isn't useful any more, since the event editor keeps its own iCalObject.
        So for now we make the menu commands available even when the event is
        being edited in the event editor.
        Also corrected misspellings of 'occurance' -> 'occurrence'.

        * gui/eventedit.c (event_editor_destroy): destroy the iCalObject.
        The event editor now uses its own independent iCalObject.

        * gui/e-week-view.c (e_week_view_on_unrecur_appointment):
        * gui/e-day-view.c (e_day_view_on_unrecur_appointment): create a new
        uid for the new single instance. I'm not sure what we should do about
        the creation/last modification times of the objects.

        * gui/e-week-view.c (e_week_view_on_edit_appointment):
        * gui/e-day-view.c (e_day_view_on_edit_appointment): duplicate the
        iCalObject before passing it to the event editor, since it will change
        the fields. If we don't duplicate it we won't know what has changed
        when we get the "update_event" callback.

        * gui/e-week-view.c (e_week_view_key_press):
        * gui/e-day-view.c (e_day_view_key_press): set the created and last_mod
        times of the new iCalObject. We may want to set the default alarm as
        well.

        * cal-util/calobj.c (ical_gen_uid): made this function public so we
        can generate new uids if necessary.

svn path=/trunk/; revision=2759
2000-05-02 22:27:45 +00:00
c4f6855ceb new function to see if the event dates have changed (including any
2000-05-01  Damon Chaplin  <damon@helixcode.com>

        * cal-util/calobj.c (ical_object_compare_dates): new function to see
        if the event dates have changed (including any recurrence rules).
        It is used for optimization when we get the "object_changed" signal.
        We have to do far less work if the dates are unchanged.

        * gui/e-week-view.c:
        * gui/e-day-view.c: only draw the selection when we have the keyboard
        focus, since the user expects to be able to type in a new event when
        the selection is shown. Also keep the selection when we lose focus,
        but just don't show it.

        Also quite a few changes to cope with the new client/server
        architecture.

        * gui/e-day-view-top-item.c (e_day_view_top_item_draw):
        * gui/e-day-view-main-item.c (e_day_view_main_item_draw):
        * gui/e-week-view-main-item.c (e_week_view_main_item_draw_day):
        only draw the selection if the widget has the keyboard focus.

        * gui/gnome-cal.c (mark_gtk_calendar_day): fixed so it works with
        events longer than one day. And changed the code for updating events
        in the new views.

svn path=/trunk/; revision=2701
2000-05-01 00:27:17 +00:00
e38db525f5 deleted some commented out code
svn path=/trunk/; revision=2670
2000-04-28 02:31:27 +00:00
fba8692c75 compare iCalObjects by their UIDs instead of by their pointers.
* gui/e-day-view.c (e_day_view_find_event_from_ico): compare
	iCalObjects by their UIDs instead of by their pointers.

svn path=/trunk/; revision=2617
2000-04-26 00:02:43 +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
8c65f8861b Initialize the alarm types here. Do not call default_alarm() anymore,
2000-03-10  Federico Mena Quintero  <federico@helixcode.com>

	* cal-util/calobj.c (ical_new): Initialize the alarm types here.
	Do not call default_alarm() anymore, since that is a GUI issue.
	(default_alarm): Removed function.
	(alarm_defaults): Removed defaults data.

	* pcs/tlacuache.c (calendar_notify): Removed stubs for
	alarm_defaults, calendar_notify(), debug_alarms.

svn path=/trunk/; revision=2095
2000-03-10 23:13:27 +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
08f2b4e43f Change iCalObject.organizer from char* to iCalPerson*
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-16 14:27:38 +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
a6c4b53533 Add default alarm support, Beep on display alarms option
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
1999-11-03 02:36:31 +00:00
241a65b72b Small fix -miguel
svn path=/trunk/; revision=1265
1999-09-27 20:56:29 +00:00
1755ff603b Fix the hostname part.
1999-08-15  Miguel de Icaza  <miguel@gnu.org>

	* calobj.c (ical_gen_uid): Fix the hostname part.

svn path=/trunk/; revision=1116
1999-08-15 05:23:22 +00:00
094deb7bca Lots of more work on the sync stuff. It works pretty well now.
Lots of more work on the sync stuff.  It works pretty well now.

I dont know why my pilot is not accepting the events I send to it though

Miguel.

svn path=/trunk/; revision=1040
1999-07-29 00:26:11 +00:00
e49e9cc175 New file. Implements PalmPilot syncronization with the Gnome Calendar.
1999-07-28  Miguel de Icaza  <miguel@gnu.org>

	* calendar-pilot-sync.c: New file.  Implements PalmPilot
	syncronization with the Gnome Calendar.

1999-07-27  Miguel de Icaza  <miguel@gnu.org>

	* calobj.c (ical_object_new_from_string): New function.  Creates
	an iCalObject from a vCalendar string that is supposed to contain
	only one vEvent.

	* calendar.c:
	(calendar_save): Split this routine in two.

	* gnome-cal.c (gnome_calendar_new): Create the corba server here.

	* main.c: Include gnorba.h, and corba-cal-factory.h here
	(close_cmd): Kill the calendar server on shutdown.

	* calobj.c (load_recur_yearly_day): Added a fixme comment.  WE
	need to handle intervals in the years.

	* calendar.c (calendar_object_find_in_list, calendar_object_find,
	calendar_object_find_todo, calendar_object_find_event): New
	functions for looking up information.

	* main.c (gnome_calendar_locate): New function.

	* corba-cal.c (calendar_create_object): New file.  Implements the
	corba server.

	* calendar.c (calendar_object_changed): Flag pilot-status as changed.

	* calobj.c (ical_object_to_vobject): Save pilot information for syncing.
	(ical_object_create_from_vobject): Load syncing information for
	pilot.  Do it in a way compatible with KOrganizer.

1999-07-26  Miguel de Icaza  <miguel@gnu.org>

	* calobj.c (ical_object_create_from_vobject): Generate unique IDs
	on Vevents we load that lack it.  WE need this for the old
	gnome calendar generated files (ie, before now :-).

svn path=/trunk/; revision=1038
1999-07-28 08:41:12 +00:00
8120715805 Generate unique IDs on Vevents we load that lack it. WE need this for the
1999-07-26  Miguel de Icaza  <miguel@gnu.org>

	* calobj.c (ical_object_create_from_vobject): Generate unique IDs
	on Vevents we load that lack it.  WE need this for the old
	gnome calendar generated files (ie, before now :-).

	Required to sync with the Palm

svn path=/trunk/; revision=1037
1999-07-26 23:06:35 +00:00
e1c1c85819 Changed gnome-pim.keys to use the --file flag
Changed gnome-pim.keys to use the --file flag

1999-07-14  Miguel de Icaza  <miguel@gnu.org>

        * calobj.c (ical_gen_uid): Returns a UID.
        (ical_object_new): Use a UID when creating an event.  Should get
        syncing done easier.

1999-07-14  Nicholas J Kreucher <nick@poetic.com>

        * calobj.c (skip_numbers): Actually skip over the numbers.
        (ical_object_to_vobject): Test the proper variable for storing the
        proper information.

svn path=/trunk/; revision=1027
1999-07-16 19:15:34 +00:00
884efbf2a9 One line bug fix from Sergey I Panov.
1999-06-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* calobj.c (daynumberlist): One line bug fix from Sergey I Panov.

svn path=/trunk/; revision=969
1999-06-03 19:03:20 +00:00
30d70369cb Work around broken software that writes a broken month-of-day as "zero".
1999-06-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* calobj.c (daynumberlist): Work around broken software that
	writes a broken month-of-day as "zero".  Use the dtstart date for
	this on this event.

svn path=/trunk/; revision=963
1999-06-02 01:12:20 +00:00
9193140bcf Make intervals always exist. a 0 interval is wrong.
1999-05-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* calobj.c (load_recurrence): Make intervals always exist.  a 0
	interval is wrong.

svn path=/trunk/; revision=942
1999-05-25 22:24:08 +00:00
45fdeb790b Added this routine so Monthly recurrences use the weekday field as a
1999-04-01 Steve Murphy <murf@e-tools.com>

	* calobj.c (weekdaynum): Added this routine so Monthly recurrences
	use the weekday field as a simple integer for a single weekday.

	* calobj.c (load_recur_monthly_pos): Call weekdaynum instead of
	weekdaylist. The interface only lets the user input a single value
	anyway.

	* calobj.c (ical_object_to_vobject): instead of code to output day
	names from a bit array, use instead the value as an int and output
	a single dayname.

	* calobj.c (ical_object_generate_events): first_week_day gets the
	day int instead of the first entry in the bit field. I inserted a
	fair chunk of code to avoid calling generate if the day is out of
	range for a month. It may be unneccessary, because mktime will
	turn the extra days into a valid date the next month. But not all
	mktimes are equal, I fear.

	* eventedit.c (ee_store_recur_rule_to_ical): For case 3,
	(Monthly), I added code to set the interval slot of the recur
	struct; without this value, selecting a monthly recursing, by
	date, would lead to an infinite loop broken only by a failure to
	alloc more memory. Also, in the "by position" case, both
	u.month_pos and u.month_day were being assigned values. This is a
	mistake, as they are both part of an union, and the same
	thing. The weekday field should get the recur_rr_month_weekday
	value.

	* eventedit.c (ee_rp_init_rule): set default day from the weekday
	field instead of the u.month_day field, which is really the
	month_pos value.

	* gnome-cal.c (gnome_calendar_tag_calendar): Month days start with
	1, not 0; thus, setting tm.tm_mday = 0, and then calling mktime
	will generate a time corresponding to the end of the previous
	month, which may have a mday anywhere from 28 to 31. The end time
	just adds 1 to the month, so your end time may not cover the last
	few days of this month, depending on what the biggest mday of last
	month was. I changed it so tm_mday is set to 1 instead.

1999-03-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>

svn path=/trunk/; revision=792
1999-04-03 23:57:14 +00:00
7a81d47b87 Include <config.h> so that strings get translated. Correct spelling.
1999-03-27  Nuno Ferreira  <nmrf@rnl.ist.utl.pt>

	* gncal/calobj.c: Include <config.h> so that strings get translated.
	* po/pt.po: Correct spelling.

svn path=/trunk/; revision=781
1999-03-27 16:26:28 +00:00
6dca9d9fe0 Added 2 paranthesis.. "foobar = d / 60*60" is _NOT_ the same as "foobar =
1999-03-23  Tomas Ogren  <stric@ing.umu.se>

* gnomecal/calobj.c: Added 2 paranthesis..
"foobar = d / 60*60" is _NOT_ the same as "foobar = d / (60*60)"
which caused heavy alarm-corruption with alarms between 2 hrs and
2 days.

svn path=/trunk/; revision=776
1999-03-23 22:30:59 +00:00
20bba8a8f6 1999-03-10 Craig A Soules (soules+@andrew.cmu.edu)
* timeutil.c, calendar.c, calobj.c, gncal-day-panel.c: Add support
	for daylight time savings.

svn path=/trunk/; revision=756
1999-03-11 01:35:52 +00:00
89ef5539d9 Save the owner/organizer of the event. (ical_object_create_from_vobject):
1999-02-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* calobj.c (ical_object_to_vobject): Save the owner/organizer of
	the event.
	(ical_object_create_from_vobject): Load the owner/organizer of the event.

	* gncal-full-day.c (delete_occurance): Assign child to data (fixes
	crash on "delete this occurrance").

svn path=/trunk/; revision=689
1999-02-24 00:40:15 +00:00
3f9e4e7024 GNOME PIM lives
Dr Mike <drmike@redhat.com>

svn path=/trunk/; revision=518
1998-12-09 05:53:19 +00:00
f57edfbc19 Add ctype.h
1998-11-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* calobj.c: Add ctype.h

svn path=/trunk/; revision=465
1998-11-07 00:39:32 +00:00
96439bc6ff Changed name from time_start_of_day() to be consistent with the other
1998-10-02  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* timeutil.c (time_day_begin): Changed name from
	time_start_of_day() to be consistent with the other begin/end functions.
	(time_day_end): Likewise.

	* calobj.c (ical_object_get_first_weekday): New public function to
	get the first toggled day in a weekday mask.  Since we do not
	support multiple weekdays in a monthly-by-pos rule, we just fetch
	the first toggled one.
	(ical_object_generate_events): Added a missing break statement.

	* timeutil.c (time_month_end): Made it consistent with the rest of
	the time begin/end functions -- now it returns the first second of
	the *next* month.
	(time_week_end): Actually implemented this function.  It will be
	used when the week view is rewritten.

	* calobj.c (time_in_range): Fix off-by-one in the comparison of
	the time against the end time.

	* gncal-full-day.c (expand_space): Fixed bug where the columns not
	were being expanded due to a missing "slot + j".

svn path=/trunk/; revision=425
1998-10-02 23:59:35 +00:00
2e0a88042f Small fixes for calendar saving
svn path=/trunk/; revision=328
1998-08-21 21:44:22 +00:00
63057dd048 Fix for the weekly event generation. Was reported on the bug tracking
1998-05-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* calobj.c (ical_object_generate_events): Fix for the weekly event
	generation.  Was reported on the bug tracking system.

svn path=/trunk/; revision=237
1998-05-25 21:51:34 +00:00
418f8bfcb5 Bug free version of the range computation in place.
1998-05-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gnome-cal.c (mark_gtk_calendar_day): Bug free version of the
	range computation in place.

	* gncal-year-view.c (year_view_mark_day): Use the same new version
	of the range computation here.

	* calobj.c (ical_object_generate_events): Fix the begin/end
	condition.

svn path=/trunk/; revision=215
1998-05-16 00:52:33 +00:00
3799134926 Do not add the spurious padding.
1998-05-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* timeutil.c (isodate_from_time_t): Do not add the spurious
	padding.

	* calobj.c (store_date_list): Bug fix:  I was using the wrong
	pointer when saving the exception date list.
	(set_date_list): Bug fix:  load correctly the complete exception
	date list.
	(set_date_list): Use ',' for the exception date separator as the
	versit people can not get their standard right.

	* gncal-full-day.c (unrecur_appointment): Support for making an
	existing recurrent event `movable' for a day.

	* calobj.c (ical_object_add_exdate): New routine, used to add
	exception dates.
	(ical_object_duplicate): New routine:  used to do the magic
	recur->no-recur event.

svn path=/trunk/; revision=214
1998-05-14 23:12:10 +00:00
4eafda3a14 Draw the day at startup. (gncal_day_panel_set): Fix selected-day display.
1998-05-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gncal-day-panel.c (update): Draw the day at startup.
	(gncal_day_panel_set): Fix selected-day display.
	(gncal_day_panel_new): Switch day on double clicks, not on single
	clicks.

	* calobj.c (ical_object_compute_end): Removed debug messages.

svn path=/trunk/; revision=205
1998-05-04 00:57:21 +00:00
07f873d107 Fixed alarm saving code. Fixed alarm loading code. New -partial-
Fixed alarm saving code.
Fixed alarm loading code.
New -partial- implementation of the mail alarm.
It is not working, I do not know what is closing stdin to sendmail

svn path=/trunk/; revision=194
1998-04-25 02:23:26 +00:00
c79a97a8e1 Fixes for vTodo thingies -mig
svn path=/trunk/; revision=190
1998-04-23 02:32:32 +00:00