Lots of people have been complaining about annoying popups with Evolution saying “Ping failed”, “Name lookup failed” etc.. I started writing a design/interface in the wiki few months back and had a test code which I showed it to a few people at Guadec 07. Since then, I was busy with too many other things and never had time to relook at this. Last week my wife and my son had left to my parent’s town and since then, I seem to have too much free time and during the last weekend I thought, I’ll give it for Non-Intrusive Error reporting framework and so It is part of Evolution 2.21.4 release. I’m sure that it is gonna change a lot of things and give more fine-grained control over Evolution to the user. Some of the high lights are…
- In general every operation that the user performs is executed in a thread in a asynchronous fashion. For every such operation, there will be a status indication of that in the status bar, with a option to cancel it. It means that (Assume that you don’t have few messages cached locally) when you click a message to view, it would start fetching from the server and you realize that you wanted to click the next one and you click that too. Unfortunately till the first operation ends, the second won’t start as most backends sequence the tasks. Since each of them is represented as a task with ‘x’ – cancel button you can cancel the first one alone and so the second can pick up. This is just one simple example and I’m sure that it will be more useful in lot other scenarios as well.
- This is about non-intrusive reporting. Every such task that goes on a asynchronous fashion, can pop up a error. Now the status bar messages are persistent and timed. Every task representation is converted to a error, if the task ended with a error. Which means “Refreshing folder…” when the error occurs would change to “Error while Refreshing folder” with a ‘!’ icon on the status bar. The user can click the icon (tool icon) to view the actual error dialog. If the user ignores it, it hides from the status bar after a specified time (configurable) with a log (Yes, Evolution features a log view along with this)
- Evolution now features a log viewer, where all the log messages of the session are stored. The UI has provisions for Error, Warning and Debug/Info messages. But all of them aren’t yet implemented and only error logging is only done. I hope that I would do the rest in the upcoming weekends.
Note: The dialog is bit outdated. It now sorts on time/descending order and has nice spacing and border and scrolled window as well.
Now the base framework is done and it is integrated with the mail thread operation, I’m hoping that I would extend my framework to most of the other operations in mailer and then in the next release I would integrate Calendar and other components.
Milan Crha extended Sankar’s work on custom labels/message tagging and the base code has hit the trunk for 2.21.4. Few more patches are still waiting and in together it is gonna make it really cool. Apart from that lots of bug fixes and some important crash/performance patches also made to 2.21.4. For a more detailed entries and release notes, see my announcement mail.