On 24 May 2001 19:33:26 +0500, Dan Winship wrote:

>I'm concerned about how all of this fits into the Evolution shell. When
>you click on a mail folder in /local, you're looking at a specific file
>stored in ~/evolution/local/. Is this not the way the calendar is going
>to work? That seems annoyingly inconsistent if so.
>
>One nice fix might be calendar vfolders. Then you can have your local
>calendar in /local, and remote calendars in various remote calendar
>storages, and a calendar vfolder to merge them together. (And then, the
>issue of "current calendar" goes away: you can't add appointments to a
>calendar vfolder, you have to go to the relevant real calendar. Or
>alternately, a calendar vfolder has a specific implied "current
>calendar".)

I understand the desire for consistency, but it seems to me a bit 
short-sighted.  Aside from the fact that the mailer is implemented 
and multiple calendaring is not (admittedly not a small difference), 
I think the mailer's behavior in this case is the inferior one.

One idea which would restore at least some semblance of consistency 
would be to return to the original conception (at least as I 
understand it) of Evolution as a vFolder based mailer.  Each 
component would merge all of its user-defined sources (local 
mailboxes, IMAP mailboxes, LDAP servers, iCalendar files, etc. as 
appropriate) into one "meta-store."  They would the provide the 
ability to selectively view/not view particular sources.

For the calendar, this can simply be built on the current calendar
querying architecture.  Currently, the default for the day view (per
Federico) is the equivalent of:

(and (= (get-vtype) "VEVENT")
     (occur-in-time-range? selected-day (+ selected-day 1))

The hypothetical default would then be:

(and (from-source? selected-folder)
     (= (get-vtype) "VEVENT")
     (occur-in-time-range? selected-day (+ selected-day 1))

If the user configures a country (or perhaps taken from the locale?), 
the default could be:

(and (or (from-source? selected-folder)
         (from-source? (national-holiday-list (user-country))))
     (= (get-vtype) "VEVENT")
     (occur-in-time-range? selected-day (+ selected-day 1))

As the user includes or excludes calendars, the from-source? 
predicates are modified appropriately.

The mailer can maintain, by default, its current behavior of letting
the user show a particular mail folder (picked in the tree) by
defining a default search of:

(from-source? (selected-folder))

If the user selects a vFolder, the vFolder query simply replaces the 
default.  Just as the VFolder Editor currently permits the user to 
specify folders to search, those folders are added as (from-source?) 
predicates.

Mail messages are still stored in separate stores/folders, be they 
mbox, mh, maildir, etc.  The filter mechanism stays the same.  But it 
would also work if at some point someone decided to write a SQL store 
for all of the user's mail: all that would need to happen is to 
define a filter action as "Assign folder-flag" and a vFolder 
criterion "has-folder-flag?" or whatnot...

The addressbook would be handled similarly, with a default query of:

(from-source? (selected-folder))

and additional predicates being added as the user chooses to 
selectively include/exclude addressbooks or define search 
expressions, etc.

I have no idea how much of the mailer code would have to change to 
accommodate this.  My uninformed sense is that it wouldn't be a 
whole lot, since the vFolder code is already written.  Obviously, if 
the change is too radical, it's a good reason to ignore this idea. :)

As a possibly related interface note, one way to implement the source 
selection referred to above might be to have the folder tree have a 
checkbox by each folder to indicate inclusion/exclusion.  A config 
option could be used to disable folder merging and restore the 
current "select one folder" interface.

I look forward to your thoughts on these ideas, hopefully from people 
familiar with the spectrum of Evolution's components.  Feel free to 
nag your colleagues if they don't respond. :)  I'm going to be 
out-of-town until next Wednesday, but I'll catch up on my mail and 
hopefully start coding the calendar support for this (or whatever 
idea comes out ahead) at that point.

-Russell


-- 
Russell Steinthal               Columbia Law School, Class of 2002
<[EMAIL PROTECTED]>            Columbia College, Class of 1999
<[EMAIL PROTECTED]>                UNIX System Administrator, nj.org



_______________________________________________
evolution-hackers maillist  -  [EMAIL PROTECTED]
http://lists.helixcode.com/mailman/listinfo/evolution-hackers

Reply via email to