2000-08-07 Federico Mena Quintero <federico@helixcode.com>
* cal-util/cal-component.c (cal_component_clone): New function.
(cal_component_get_icalcomponent): Ensure that the SEQUENCE
property does not need incrementing.
* gui/dialogs/alarm-notify-dialog.c (alarm_notify_dialog): Use
CalComponent. Deal with an empty summary property.
svn path=/trunk/; revision=4589
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-02 Federico Mena Quintero <federico@helixcode.com>
* pcs/cal-backend-file.[ch]: New files for the iCalendar file
backend.
* pcs/Makefile.am (libpcs_a_SOURCES): Added cal-backend-file.[ch].
* cal-util/cal-component.c (cal_component_set_icalcomponent):
Return an operation success code for if we are passed a component
of a type we don't support.
svn path=/trunk/; revision=4479
2000-07-31 Federico Mena Quintero <federico@helixcode.com>
* cal-util/cal-recur.c (*): Use CalComponent and the new property
types instead of the old iCalObject stuff.
(cal_recur_generate_instances): Renamed from
cal_object_generate_events(). Ensure that the component has the
DTSTART property.
(generate_instances_for_year): Renamed from
cal_object_generate_events_for_year().
(cal_obj_expand_recurrence): Made static.
(cal_recur_from_icalrecurrencetype): New function. We should
really convert this whole file to use struct icalrecurrencetype
instead.
(cal_recur_free): New function.
* cal-util/cal-recur.h (CalRecurType): Renamed from CalObjRecurType.
(CalRecurrence): Renamed from CalObjRecurrence.
* cal-util/timeutil.c (time_from_icaltimetype): New function.
* cal-util/Makefile.am: Commented out the test-recur program.
svn path=/trunk/; revision=4464
2000-07-26 Federico Mena Quintero <federico@helixcode.com>
OK, it seems that we have all the interesting properties for
single-user calendars now. RFC 2445 can bite me.
* cal-util/cal-component.c (scan_property): Handle the RRULE
property. Yay!.
(scan_recur): Likewise, yow!
(get_recur_list): Likewise, yeehaw!
(get_recur_list): Likewise, honk honk!
(set_recur_list): Likewise, booooga booooga!
(cal_component_get_rrule_list): Likewise, squeek squeek!
(cal_component_set_rrule_list): That's it, I ran out of sounds.
(cal_component_free_recur_list): Likewise.
(scan_property): Handle the EXRULE property.
(free_icalcomponent): Likewise.
(cal_component_get_exrule_list): Likewise.
(cal_component_set_exrule_list): Likewise.
(set_period_list): Oops, free the old properties as well as
removing them.
(set_text_list): Ditto.
(cal_component_set_exdate_list): Ditto.
svn path=/trunk/; revision=4361
2000-07-26 Federico Mena Quintero <federico@helixcode.com>
* cal-util/cal-component.c: Put all the functions used to free
returned values all together.
(cal_component_set_rdate_list): Oops, mark SEQUENCE property to be
incremented since the RFC requires it.
(scan_property): Handle the EXDATE property.
(scan_exdate): Likewise.
(free_icalcomponent): Likewise.
(cal_component_get_exdate_list): Likewise.
(cal_component_set_exdate_list): Likewise.
(cal_component_free_exdate_list): Likewise.
svn path=/trunk/; revision=4353
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-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-18 Federico Mena Quintero <federico@helixcode.com>
* cal-util/cal-component.c (cal_component_alarm_free): Free the
icalcomponent if this is an unattached alarm.
(scan_alarm_property): Handle the TRIGGER property.
(cal_component_alarm_get_trigger): Ditto. Royal pain.
(cal_component_alarm_set_trigger): Ditto. Less pain.
svn path=/trunk/; revision=4216
2000-07-14 Federico Mena Quintero <federico@helixcode.com>
* cal-util/cal-component.c (CalComponentAlarm): New internal
represntation for alarm components. We really don't map them to a
CalComponent because it is more convenient to handle them as
"child" structures.
(make_alarm): New function to create a CalComponentAlarm from an
icalcomponent representing a VALARM.
(scan_alarm_property): New function to scan a property from an
alarm component. We support ACTION.
(cal_component_get_first_alarm): New function to start an iterator
over the alarms in a calendar component.
(cal_component_alarm_get_action): New function.
(cal_component_alarm_set_action): New function.
svn path=/trunk/; revision=4173
* 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-07 Federico Mena Quintero <federico@helixcode.com>
* cal-util/cal-component.c (scan_property): Handle the SEQUENCE
property.
(free_icalcomponent): Ditto.
(cal_component_get_sequence): Ditto.
(cal_component_set_sequence): Ditto.
(cal_component_free_sequence): Ditto.
(cal_component_set_last_modified): Removed incorrect assertion.
(CalComponentPrivate): New need_sequence_inc flag. The sequence
number must be incremented when certain properties change, so we
store a flag that says if we need to bump it when piping the
object over the wire.
(free_icalcomponent): Reset need_sequence_inc.
(cal_component_set_dtstart): Set need_sequence_inc.
(cal_component_set_dtend): Ditto.
(cal_component_set_due): Ditto.
svn path=/trunk/; revision=3957
2000-07-06 Federico Mena Quintero <federico@helixcode.com>
* cal-util/cal-component.c (scan_property): Handle the
LAST-MODIFIED property.
(free_icalcomponent): Ditto.
(cal_component_get_last_modified): Ditto.
(cal_component_set_last_modified): Ditto.
(get_icaltimetype): New function to get struct icaltimetype
values.
(cal_component_get_created): Use get_icaltimetype().
(set_icaltimetype): New function to set struct icaltimetype
values.
(cal_component_set_created): Use set_icaltimetype().
svn path=/trunk/; revision=3936
2000-07-06 Federico Mena Quintero <federico@helixcode.com>
* cal-util/cal-component.c (scan_property): Handle the CREATED
property.
(free_icalcomponent): Ditto.
(cal_component_free_icaltimetype): Ditto.
(cal_component_get_created): Ditto.
(cal_component_set_created): Ditto.
(cal_component_init): Do not create an UID here.
(ensure_mandatory_properties): New function to ensure that the
mandatory RFC properties are indeed in the component. If they are
not, we create them on the fly.
(cal_component_set_new_vtype): Use ensure_mandatory_properties().
(cal_component_set_icalcomponent): Ditto.
(cal_component_get_uid): Return the UID in a parameter, not as a
function return value, for consistency's sake.
(scan_property): Handle the DTSTAMP property.
(free_icalcomponent): Ditto.
(cal_component_get_dtstamp): Ditto.
(cal_component_set_dtstamp): Ditto.
svn path=/trunk/; revision=3934
2000-07-03 Federico Mena Quintero <federico@helixcode.com>
* cal-util/cal-component.c (cal_component_free_text_list): Renamed
from cal_component_free_description_list(). We can share this
function since both comments and descriptions have the same form.
(scan_text): Ditto.
(get_text_list): New function.
(set_text_list): New function.
(cal_component_get_description_list): Use get_text_list().
(cal_component_set_description_list): Use set_text_list().
(cal_component_set_uid): Add sanity check.
(cal_component_get_summary): Ditto.
(cal_component_get_description_list): Ditto.
(cal_component_get_dtstart): Ditto.
(cal_component_get_dtend): Ditto.
(cal_component_get_due): Ditto.
(scan_property): Handle the COMMENT property.
(cal_component_get_comment_list): Ditto.
(cal_component_set_comment_list): Ditto.
svn path=/trunk/; revision=3875
2000-07-02 Federico Mena Quintero <federico@helixcode.com>
* cal-util/cal-component.c (scan_categories): Handle CATEGORIES.
This can appear multiple times, so we maintain a list. We
compress them later to a single property with multiple values.
(cal_component_get_categories_list): Ditto.
(cal_component_set_categories_list): Ditto.
(cal_component_free_categories_list): Ditto.
(free_icalcomponent): Properly free the mappings.
svn path=/trunk/; revision=3868
2000-07-01 Federico Mena Quintero <federico@helixcode.com>
* cal-util/cal-component.c (cal_component_get_description_list):
Handle the DESCRIPTION property. There can be multiple
descriptions with parameters each, so we deal with a list instead
of a single structure.
(cal_component_set_description_list): Ditto.
(cal_component_free_description_list): Ditto.
(scan_property): Ditto.
(scan_description): Ditto.
svn path=/trunk/; revision=3845
2000-06-29 Ettore Perazzoli <ettore@helixcode.com>
* notes/component-factory.c (owner_set_cb): Get an
EvolutionShellClient instead of an Evolution_Shell to match the
changes in libeshell.
2000-06-29 Peter Williams <peterw@helixcode.com>
* configure.in: Re-enable GNOME_PILOT_CHECK.
Change AC_MSG_CHECKING([For...]) to [for...]. It's the little
things that matter.
2000-06-28 Ettore Perazzoli <ettore@helixcode.com>
* configure.in: `AM_PATH_GCONF'.
2000-06-27 Peter Williams <peterw@curious-george.helixcode.com>
* configure.in (ctime_r): Check for whether ctime_r takes
two (Linux) or three (Solaris) arguments.
(AC_OUTPUT): Don't create notes/Makefile twice.
* acconfig.h: Add CTIME_R_THREE_ARGS to the list.
svn path=/trunk/; revision=3821
2000-06-28 Federico Mena Quintero <federico@helixcode.com>
* cal-util/cal-component.[ch]: New files for the new iCalendar
component object. Today's properties: basic component type, UID,
SUMMARY.
* cal-util/Makefile.am: Added cal-component.[ch] to the list of
sources.
svn path=/trunk/; revision=3786
2000-06-16 Damon Chaplin <damon@helixcode.com>
* cal-util/test-recur.c: updated.
* cal-util/cal-recur.[hc]: mostly finished, though it depends on the
iCalObject struct being updated to support more of iCalendar.
svn path=/trunk/; revision=3591
* cal-util/Makefile.am (noinst_PROGRAMS): merge the two separate
noinst_PROGRAMS declarations into one so automake accepts it.
(INCLUDES): include libical src dir so we don't depend on having
ical.h already installed
svn path=/trunk/; revision=3573
2000-06-13 Federico Mena Quintero <federico@helixcode.com>
* gui/calendar-model.c (CalendarModelPrivate): Added the array of
objects and the hash table of UID->array index.
(calendar_model_row_count): Return the length directly from the
array instead of asking the Wombat.
(calendar_model_value_at): Implemented.
(calendar_model_new): Create an empty model. We provide a new
setter function now.
(calendar_model_construct): Removed function.
(calendar_model_set_cal_client): New function to set the calendar
client and object type at any time. This lets us reuse a calendar
model object.
* cal-util/calobj.h (iCalObjectField): Just report whether the
object has alarms; not every single alarm.
svn path=/trunk/; revision=3547
* 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
* 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
* 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 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-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-19 Federico Mena Quintero <federico@helixcode.com>
* cal-util/timeutil.c (time_add_minutes): Fixed warning message.
(time_add_day): Likewise.
(time_add_month): Likewise.
(time_add_year): Likewise.
(time_from_day): Of all functions, *this* one had to have a bug.
Set the tm.tm_isdst to -1 to specify that we don't know whether
the time is in DST or not. This fixes *many* bugs upstream.
(time_week_begin): Likewise. We never noticed this since the week
functions are never used.
(time_week_end): Likewise.
svn path=/trunk/; revision=3135
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
* pcs/icalendar-save.c (timet_to_icaltime): remove unused timezone
variable to make this compile on BSD systems (where timezone is
the name of a function)
svn path=/trunk/; revision=2996
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-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-06 Damon Chaplin <damon@helixcode.com>
* cal-util/timeutil.c (time_day_begin):
(time_day_end): changed these so they just do a simple localtime(),
update the struct tm, then do a mktime(). I don't know why it used to
look at the tm_isdst flags etc. From a little test program I wrote
which steps through testing every hour for a year it wasn't working
correctly, and the new code does.
(time_add_day): also got rid of the stuff that looked at tm_isdst here.
My test program now works better.
svn path=/trunk/; revision=2841
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 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-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-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