2000-09-11 Damon Chaplin <damon@helixcode.com>
* gui/dialogs/task-editor.c: changed to use EDateEdit.
* gui/dialogs/task-editor-dialog.glade: added "None" option to
Classification option menu, and used custom widgets for the date
entries so we can use EDateEdit widgets.
* gui/event-editor.c: changed to use EDateEdit. Note that this needs
to be fixed at some point to handle invalid dates, i.e. when
e_date_edit_get_time returns -1.
* gui/calendar-model.c (ensure_task_complete):
(ensure_task_not_complete): new functions to set the related properties
to make sure a task is marked as complete on not, i.e. "Date Completed"
"Status" and "Percent" properties.
2000-09-08 Damon Chaplin <damon@helixcode.com>
* gui/calendar-model.c (get_is_complete): use the status field rather
than the completed date, as it is more reliable.
(get_is_overdue): use get_is_complete().
(calendar_model_mark_task_complete): check if it is already complete,
and if so don't update it.
* cal-util/cal-component.c (cal_component_get_status):
(cal_component_set_status): added functions to support the STATUS
property. Also added the property to CalComponentPrivate and set it
to NULL in free_icalcomponent(). Someone should check my code as I've
mainly done a Cut & Paste job.
svn path=/trunk/; revision=5305
2000-09-10 JP Rosevear <jpr@helixcode.com>
* conduits/todo/todo-conduit.c (local_record_from_icalobject): Use
cal component pilot stuff properly
(find_record_in_repository): Remove cruft
(ical_from_remote_record): Remove cruft
(update_record): Set the vtype immediately after creation. Remove
cruft
* conduits/todo/todo-conduit.h: Remove iCalObject stuff
* conduits/todo/todo-conduit-config.h: Move all the config stuff
here, I need to kill the warnings at some point
* conduits/todo/todo-conduit-control-applet.c (doRevertSettings):
Set all the state variables correctly on a revert
(doSaveSettings): Update original state
(doHelp): Rename from about_cb
(main): Destroy configurations when done
* conduits/todo/Makefile.am: Tidy
* pcs/cal-backend-file.c (cbf_pilot_hash): Function for hashing
pilot ids
(cbf_pilot_equal): For hash table of pilot ids
(cal_backend_file_destroy): Destroy pilot id hash
(add_component): Insert the uid into the pilot hash
(remove_component): Remove the uid from the pilot hash
(cal_backend_file_load): Create the pilot hash
(cal_backend_file_create): ditto
(cal_backend_file_get_uid_by_pilot_id): Implement using the pilot
hash
(cal_backend_file_update_pilot_id): ditto
* cal-util/cal-component.h: Update prototypes
* cal-util/cal-component.c (cal_component_get_pilot_id): Implement
using ical X properties
(cal_component_set_pilot_id): ditto
(cal_component_get_pilot_status): ditto
(cal_component_set_pilot_status): ditto
(cal_component_free_pilot_id): Free a pilot id
(cal_component_free_pilot_status): Free a pilot status
svn path=/trunk/; revision=5298
2000-09-06 JP Rosevear <jpr@helixcode.com>
* cal-util/cal-recur.c (cal_recur_generate_instances): Use
new convenience functions and only get the recurrence
stuff if needed. Free the recurrence stuff if used.
2000-09-05 JP Rosevear <jpr@helixcode.com>
* cal-util/cal-component.h: Add new prototypes
* cal-util/cal-component.c (cal_component_has_exrules): Utility
function to determine whether a cal component has any exrules
(cal_component_has_exdates): Ditto for exdates
(cal_component_has_exceptions): Utility function to determine
whether a cal component has any exception rules
(cal_component_has_recurrences):Utility function to determine
whether a cal component has any recurrence rules
svn path=/trunk/; revision=5219
2000-09-05 JP Rosevear <jpr@helixcode.com>
* gui/event-editor.c (dialog_to_comp_object): Kill all exdates if
there are no dates in the box
* cal-util/cal-recur.c (generate_instances_for_year): Add a
special
case for when there are exceptions but no rrules or rdates.
(cal_obj_remove_exceptions): Use date only compare func
(cal_obj_date_only_compare_func): New compare function that
compares the date only, not the time.
* gui/event-editor.c (dialog_to_comp_object): Need a break for the
yearly recurrence type
(dialog_to_comp_object): We need to allocate icaltimetypes for the
exdate list
(fill_widgets): Handle a weekly recurrence with no particular day
set
(dialog_to_comp_object): Kill all rrules if "None" is selected as
the recurrence type by the user
svn path=/trunk/; revision=5218
2000-09-05 JP Rosevear <jpr@helixcode.com>
* cal-util/cal-recur.c (generate_instances_for_year): The exdate
and rdate lists are a list of icaltimetypes, not
CalComponentPeriods
*gui/e-day-view.c (e_day_view_on_delete_occurrence): The exdate
list
is a list of icaltimetypes, not CalComponentDateTimes
svn path=/trunk/; revision=5211
2000-09-05 JP Rosevear <jpr@helixcode.com>
* cal-util/cal-component.c (cal_component_free_recur_list): Free
the data, not the list element.
svn path=/trunk/; revision=5203
2000-09-05 JP Rosevear <jpr@helixcode.com>
* cal-util/cal-recur.c (cal_recur_generate_instances): Compute
the event duration using the event start/end times, not the
interval times.
svn path=/trunk/; revision=5199
2000-09-05 JP Rosevear <jpr@helixcode.com>
* cal-util/cal-recur.c (cal_recur_from_icalrecurrencetype): Check
to see if r->enddate is (time_t)-1 and set to 0 if so
svn path=/trunk/; revision=5198
2000-09-01 JP Rosevear <jpr@helixcode.com>
* configure.in: We don't need AC_PROG_RANLIB and
AM_PROG_LIBTOOL
* src/libical/icalyacc.y (clear_recur): Explicitly
set the week_start to the Monday default in case the
recurrence rule does not.
2000-09-01 JP Rosevear <jpr@helixcode.com>
* gui/event-editor.c: Make toolbar save and close button.
We should put a similar menu option in sometime.
2000-08-31 JP Rosevear <jpr@helixcode.com>
* cal-util/cal-recur.c (array_to_list): Use
ICAL_RECURRENCE_ARRAY_MAX instead of MAX_SHORT
svn path=/trunk/; revision=5164
2000-08-28 Federico Mena Quintero <federico@helixcode.com>
* cal-client/cal-client.c (cal_client_is_loaded): New function.
We need this from code that dynamically updates from a client and
could not have connected to the "cal_loaded" signal right after
the client was created.
* gui/calendar-model.c (load_objects): Do not try to load the
objects if the client has not been loaded yet.
(cal_loaded_cb): Check the status value.
* gui/calendar-model.h (CalendarModel): Declare the private
structure here so that gdb will give me love.
* pcs/cal-factory.h (CalFactory): Likewise.
* pcs/cal.h (Cal): Likewise.
* cal-client/cal-listener.h (CalListener): Likewise.
* cal-client/cal-client.h (CalClient): Likewise.
* pcs/cal-backend.h (CalBackend): This no longer has a private
structure, so remove it.
* cal-util/Makefile.am (libcal_util_la_SOURCES): Removed the
vCalendar and old iCalendar cruft.
(libcal_utilinclude_HEADERS): Likewise.
Removed the obsolete iCalendar test program.
svn path=/trunk/; revision=5091
2000-08-28 JP Rosevear <jpr@helixcode.com>
* cal-util/timeutil.h: We no longer need time_from_icaltimetype
as libical has the API for this
* cal-util/timeutil.c: ditto
* cal-util/cal-recur.c: Replace time_from_icaltimetype with
icaltime_as_timet
* gui/calendar-model.c: ditto
* gui/event-editor.c: ditto
* gui/gnome-cal.c: ditto
svn path=/trunk/; revision=5090
2000-08-23 JP Rosevear <jpr@helixcode.com>
* gui/event-editor-dialog.glade: Remove status bar
* cal-util/cal-component.c (cal_component_set_rrule_list): Allow
a null list
(cal_component_set_rdate_list): Allow a null list
* gui/e-day-view.c (e_day_view_on_new_appointment): Commit
the CalComponent sequence
svn path=/trunk/; revision=4995
* cal-util/cal-component.c (cal_component_get_pilot_id):
(cal_component_set_pilot_id): stubs for pilot id accessors
(cal_component_get_pilot_status):
(cal_component_set_pilot_status): stubs for pilot status accessors
* conduits/calendar/calendar-conduit.c (transmit): start to
convert to cal-component interface
* conduits/todo/todo-conduit.c (transmit): same
svn path=/trunk/; revision=4767
2000-08-11 Federico Mena Quintero <federico@helixcode.com>
* gui/calendar-model.c (get_geo): Generate a prettier string for
the geographical position.
(get_classification): New function.
(get_categories): New function.
(get_completed): New function.
(get_dtend): New function.
(get_dtstart): New function.
(get_due): New function.
(get_percent): New function.
(get_priority): New function.
(get_summary): New function.
(get_transparency): New function.
(get_url): New function.
(get_has_alarms): New function.
(get_has_recurrences): New function.
(get_is_complete): New function.
(get_is_overdue): New function.
* cal-util/cal-component.c (scan_property): Handle the GEO
property.
(free_icalcomponent): Likewise.
(cal_component_get_geo): Likewise.
(cal_component_set_geo): Likewise.
(cal_component_free_geo): Likewise.
(cal_component_set_exdate_list): Removed incorrect assertion.
(cal_component_set_exrule_list): Removed incorrect assertion.
(cal_component_get_next_alarm): Oops, this had not been
implemented at all.
(cal_component_has_rdates): New function.
(cal_component_has_rrules): New function.
* cal-util/cal-component.h (CalComponentField): Added the GEO
property.
svn path=/trunk/; revision=4763
2000-08-11 Federico Mena Quintero <federico@helixcode.com>
* cal-util/cal-component.c (scan_property): Handle the
PERCENT-COMPLETE property.
(free_icalcomponent): Likewise.
(cal_component_get_percent): Likewise.
(cal_component_set_percent): Likewise.
(cal_component_free_percent): Likewise.
(scan_property): Handle the PRIORITY property.
(free_icalcomponent): Likewise.
(cal_component_get_priority): Likewise.
(cal_component_set_priority): Likewise.
(cal_component_free_priority): Likewise.
* cal-util/cal-component.h (CalComponentField): New enumeration
with the list of fields we support for ETable.
svn path=/trunk/; revision=4745
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