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