Re: [HC Evolution] Calendar to-do list
- From: rms39 columbia edu (Russell Steinthal)
- To: Federico Mena Quintero <federico helixcode com>
- Cc: evolution helixcode com
- Subject: Re: [HC Evolution] Calendar to-do list
- Date: Sat, 25 Mar 2000 20:58:23 -0500
On Fri, 24 Mar 2000 18:44:31 EST, Federico Mena Quintero wrote:
Dear primates,
Here is the list of things that need to be done to the Evolution
calendar:
1. Use the new notification mechanism for all views. What we
have now is a toplevel calendar window, represented as an
object called GnomeCalendar, that contains multiple views:
typedef struct {
GnomeApp app;
CalClient *client;
GtkWidget *day_view;
GtkWidget *week_view;
GtkWidget *month_view;
GtkWidget *year_view;
} GnomeCalendar;
Just for the record, note that this structure has changed in
gnome-pim since evolution was forked off of the gnome-pim source.
There was a bug in gnomecal in that there was only one "current"
pointer into the views, so that all of the views had a common
"current day," which led to problems when the user used one view to
move forward or back. (See bug #2343 on bugs.gnome.org and the
ChangeLog for 2000-02-21).
I'm not sure if that bug will occur in Evolution's view interface,
but it would, whoever is fixing the notification mechanism should
probably also propagate the fix from gnomecal to Evolution.
This should also let us rip apart independent views and
embed them somewhere else. I am still not decided if we
want to export the day/week/month/year notebook combination
as a Bonobo control for the Evolution shell, or if we want
to have something more fine-grained, i.e. separate
components for each of the views. I don't know if we want
to change menus or toolbars depending in which view is
active. I'd like to know what Outlook does, but I'd also
like to keep the interface simple, since people seem to
like the way Gnomecal works.
I don't know enough about Bonobo to understand all of the technical
implications of this, but I can conceive of situations in which it
might be handy to be able to use only one of the views (and therefore
it would be useful to have them each be a separate Bonobo object).
OTOH, since they share a lot of code, it may be simpler just to
implement some sort of interface for hiding and showing views, so
that one would import the calendar object and then hide the views you
don't want.
3. iCalendar support. We need to suck in an interoperable
way, i.e. we need to support all the fancy stuff that
iCalendar defines. This involves some stuff that has to be
done carefully, such as updating the revision number of
calendar objects when they change. Read the iCalendar
specification and weep.
4. Proper timezone support. What we have now is very crummy.
Russell said he wanted to work on this, and he seems to
have a good understanding of the issues involved.
Just a quick note that #3 and #4 are actually related- that is, a
large part of getting iCalendar "correct" is handling timezones
correctly...
Also, we need to rewrite the recurrence engine to support iCalendar.
That should be added to the to-do list. (Basically, iCalendar
supports richer recurrence rules than vCalendar, so the existing
engine isn't sufficient.)
6. Make the personal calendar server support the concept of
providers, possibly in a similar way to how Camel does it.
We would then have a vCalendar provider, an iCalendar one,
a CAP one, and LDAP and all that scary stuff.
Right now the initial iCalendar support simply has a flag
in the calendar store that says whether it is a vCalendar
or an iCalendar. This is somewhat bogus, and providers
would make things simpler and more extensible.
I think this is probably a useful addition (and was initially
thinking of this for iCalendar/vCalendar)...
Speaking of CAP, however, are we planning on providing a CAP server
interface for the PCS? That is, allowing other CAP clients to access
the PCS's event store?
As another side note, Ali Abdin said he wanted to investigate adding
support for other types of calendars, such as the Islamic calendar.
This is a bit tricky; there has been some discussion and JWZ
suggested
looking at the Emacs calendar and some excellent reference material
in
a book about calendarical computations. It is also tricky because
iCalendar only supports Gregorian calendars right now, so we may have
to talk to the IMC's working group on calendaring.
I have some sort of intuition, although not entirely thought out,
that we may be able to do handle this sort of thing, at least in
part, using the timezone mechanism. That is, there is going to have
to be a function call around most (if not all) time accesses in the
client (to make appropriate timezone conversions)... If a client had
Islamic support, it could make the appropriate calendar conversion at
the same time.
There's still the issue of loading and saving, and for that you may
need an iCalendar extension (or a definition of the Islamic time
format from the CALSCH folks).
-Russell
--
Russell Steinthal Columbia Law School, Class of 2002
<rms39 columbia edu> Columbia College, Class of 1999
<steintr nj org> UNIX System Administrator, nj.org
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]