Evolution Google SOC 2007

Evolution got 3 Google summer of code projects.

     Google Calendar backend for EDS/Evolution
      by Ebby Wiselyn, mentored by Harish Krishnaswamy
     Evolution Message Threading Improvements
      by Tobias Mueller, mentored by Sven Herzberg
     Evolution/Seahorse Integration
     by Pınar Yanardağ, mentored by Raphael Slinckx

A BIG thanks to all the mentors and students and all the very best to Ebby, Tobias Mueller and Pınar Yanardağ.

On Evolution #2

behdad, I guess, dobey’s comments explains the feature. IIRC OpenOffice.org, Firefox too has the same concept like evolution. IMO It may not be fair to compare this with tabs in gedit. I agree with the shortcuts stuff, which should to be addressed in some way. We are working on configurable shortcuts which should help address such issues. It was supposed to be in 2.8, but didnt make it. It should be part of next release, as I have described in the FUTURE section in my earlier blog

On Behdad’s observation #1

HIG states, dont change the tool button labels. That is one reason, why “Delete” / “Undelete” and “Junk” / “Not Junk” cant be merged.
There was some proposal to make spam assasin learn as ham (Not a spam). Both Junk and Not_Junk button has to be present for that. Atleast It was merged in early 2.14 cycle and reverted for above reasons.

– “Delete” option in context menu for a deleted message was a due to bug 254770 You can reopen and put down your views there

– I strongly agree to the jumping message selection in threaded view. Please file a bug, and put down your expectation, we would be happy to fix it.

Threaded Message view

One big reason, I hate to use threading is that my reading is limited to the mails I received TODAY/RECENTLY. If a new message arrives in a old thread, it still lies way below the scrolled window and never comes to my visibility. I really like GMail at this very point and I tried to get something like this into Evolution, to improve threading usage. I got some good results.

If the message is in a collapsed state, the date of the THREAD, I compute to be the date of latest message received in that thread.

which brings the message on to the top to get the attention. If you expand, it appears like this.

If the message is in expanded state during sorting (List generation), then it takes the date of its creation, which puts it back to the original place.

Once in a day, I can use View/Collapse All and see are there any new messages to a old thread.

UI Improvements in Evolution 2.8

Four months, in GNOME 2.16 cycle, We have added a lot of UI improvements to Evolution to make it look much better. Not just features and lot of bug fixes too!!! I have blogged them in parts. Im summarising all of them.

Cairo Rendering for Calendar

Evolution Calendar takes direct advantage of Cairo. It enabled us to make calendar much appealing. Now calendar features the following features

– The entire calendar, day/month view is drawn using Cairo.
– The selected event is shown with a shadow.

– When u re-size the event, you can see the end time shown in
the bottom of the event.
– The tag calendar has been moved to the left. Users can select the day on the left and see the events on the right

– There is a top header in every event that displays the start
time of the event.

Vertical View in Mailer

– Dynamic switch to Vertical view for Wide screen monitors
– Composite columns, which merges few of the most used columns
in to a 2 line column, so that the user has a extra width to
have a reasonable width for the preview. Automatic switching to
this view on vertical view mode.
– Right click to sort on hidden columns.
– Ability to custom short the number of emails displayed in
headers in the message preview/view with a option to expand.

Search

– Quick Search bar: It features some of the most used
predefined instant apply criteria on the mail list.

– One interface to search for all mails in current
folder/account/all accounts and current mail.
– For current message, it uses no pop up dialog for search
widgets.
– Implements All account search. Don’t have to hack around with VFolders to search :).

There were a lot of UI bug fixes. You wont see the shading over NEW button any more and It follows the gconf setting for toolbar buttons. The comma deletion in NameSelector is no more over smart and just works as expected and a lot more fixes.

Future

A lot of other works have started like

– Split UI
Load the bonobo component of just one module, when started
with a command line option or so. It reduces the preferences
options, menu size and to some extent memory. (Ex. You open
calendar and mail. Just See your calendar and close it, it is
off your memory) It has few missing bits like plugin support
and other logistics. It should be ready for the next
release (Hope so :). This model allows Evolution to run as a Suite as
well as in split mode. I have demoed this during my GUADEC talk.
– Toolbar/Shortcut Editor (Pretty lame implementation, due to the
limitation of libbonoboui)

– HTML Composer for Calendar/Tasks/Memo

Evolution Wide mode

After a week long battle, I completed my hack on the message list to have a hbox/vbox renderer working and with which I have made a new message column called ‘Messages’. This will have the following layout

This is a single multilined column, which helps to reduce the width of the message list, which helps to add to the width of the preview in the wide mode. I haved rendered the First line in Standard Font and the subject in Fixed width font, to make the easier to find what is the subject and who is the sender. Also I have added a gconf option to choose to show email or not in this column. It shows the attachment icon, just before the date. It supports threading in the view and it will show the expander, just before the subject and only the subject is offseted to show the thread

Also since this is a single column, sorting becomes difficult. I have added a ‘Sort By’ menu, which shows the current sort selection and gives a option to sort on a field, without having a requirement to add a new one.

Have a look at the screenshot, and let me know your suggestions/opinions on it.

Evolution & GnomeKeyring

Btw, Evolution integrates with GNOME Keyring from 2.7.x onwards. While doing the build, –enable-keyring=yes (Default in the tarball) should be just sufficient to enable it by default. Then It stores/retrieves passwords only from the key store and not any other stores like .gnome_private. Evolution, EDS, Alarm Daemon, everything picks up the passwords from the keyring for all the operations.

Evolution Remote Shares

I added some code across evolution to enable, save attachments/mails/calendar/events/addressbooks/vcards to remote shares. Also I enabled the file chooser to attach files from remote shares. I have attached a screenshot of the file chooser, showing remote shares. I have added a new camel backend class called CamelStreamVFS which can save files from any gnome-vfs backend. Ill be committing this patch to head sometime this week.

Expandable Headers

I remember seeing too many requests to make the headers collapsible, if the to/cc/bcc are too many. It really takes up a lot of space in the preview pane and makes the mail invisible in the pane. I have added a ‘+’ ‘-‘ button before the header to Expand/Collapse. Also a link ‘…’ at the end of the headers. Currently my patch picks up a fixed count from gconf to show. In long term, I would prefer to decide based on the font size/screen width. I have put a screenshot for the same. Also it uses a hard coded icon for the header. Im not able to use any from the them, since nothing really matched, and Im not able to find the expander icon there. Anyways these are still few pending tasks. Have a look at the screenshot

Cairo in Evolution 2.7.1

Thanks a lot for the comments/response for the previous post. Monday I committed the first cut of cairo drawing work in Evolution calendar to HEAD. I have applied garrett’s ideas on it. It has the event transparency configurable with gconf, rounded corners and other minor bits. Im sure that, it might need more revisions till the final cut. I have pasted a screenshot of the calendar.

Im working with Rajeev to cairo-fy the free/busy view, GtkHTML, MiniCard view and few other bits.