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.
That is really awesome! Evolution 2.22 is going to rock! Thanks for your work!
Thanks, thanks and thanks again! This will probably be the killer feature of the next Evo release for me!
thanks so much, srini! you’ve fixed another one of my “favourite” bugs i’ve been complaining about for all those years! 🙂
How about using Mathusalem for the progress bars ?
Xav, I think using Mathusalem for things like download-for-offline and few more it may make sense. But not for every thing wrt Evolution. This is more wrt the small task handling within Evolution and at times, some may not matter much to the user at the desktop level.
The log viewer should use a toggle button for each of Error, Warning and Info, like MonoDevelop (and a few other programs that I’m sure exist but I cannot remember!)
Is there a way to increase the number of simultaneous operations Evolution performs at once? I have 4 IMAP accounts, but Evo (2.12) only performs two operations across all of them, judging by the number of operations in the status bar.
Oh, and another dialog you coul kill is the “Binding anonymously to LDAP server” after canceling a password request for LDAP, which pops up the first time you compose an email or create an event if you don’t save the password.
James, it might do multiple.. but it was hacked to show only two operations on the status bar 🙂
“Binding anonymously to LDAP server” – can you add your thoughts to the wiki? http://www.go-evolution.org/NonIntrusiveError
Hey, when I manually fetch mails I get also a pop-up which is very uneccessary imho.
Could that also be removed by status bar messages?
Thanks!
Very nice.
I wish though that while those tasks are meant to be asynchronous, stuff like formatting a message behaves synchronously and causes waiting time.
If I click on message one which causes a loading/formatting task and directly click on the next message, it should abort the now obsolete operation and directly start with loading/formatting the newly selected message instead.
This becomes very evident on IMAP servers where you use up/down arrows browsing the mails.
Wow, another great UI improvement.
You guys are on a roll! Am glad that Evolution is being developed by such passionate developers!
Miguel
I have grown to like how Pan and Pidgin (the newsreader) handles errors, and this looks like Evo’s moving in the same direction.
Keep up the good work!
Funky, The synchronous mail-reading-per-view is already on my list. Thanks for bringing it anyways.
Cool !
Related pet peeve – what is that (…) about anyway ? Why is it there ? Worst case is when I have my Evolution, sitting there, doing nothing at all, and just showing me two message bars at the bottom, each with only (…) and no text…
Thanks.
I’ve noticed, the “Statusbar” jumps up/down while/while not displaying this.
Making the user manually cancel an operation that he just implicitly canceled by asking for a second operation is still not ideal. I shouldn’t have to click the second message (fixing my mistake of accidentally clicking the first one) and then also click the cancel icon if the first message is large. Simply clicking the second message should be enough – I can’t see the first message even when it’s done since I’ve switched to the second, so why bother continuing with the first?
Thanks for this great work!
I switch networks constantly (often to networks without Internet access) at work, so I get blasted with a handful of popup errors from Evolution fairly often.
Now I won’t have to! 🙂
Just wanted to let you know that this modification would rock!
I use evo at my work and i hate the popups that it generates, our mailserver is old and crooked and runs on a ancient Mac (don’t ask) so lots of timeouts.
You should get yourself a amazon wishlist, i would have bought you something. 😉
Sean, that is already on my list. My example was more to understand what is there 🙂
Thomas: It should be fixed on trunk wrt a empty task on status bar. I’m still doing lots of cleanup here and I’m sure I will give it a new-good look.
Thanks everyone for all the feedback.
I am also very glad that development is done in this direction!
The only thing I wonder about is the presentation:
1.) What about people who don’t use the status bar (it can be disabled)
2.) Is displaying multiple actions in the status bar really a good idea? At the size I use the Evo window, it shows three actions at once, none of which is very readable. I did some mockups how to handle this kind of stuff in the past (like banshee). I think this would be much better.
Perhaps we could alternatively just add some kind of “button” to the status bar, which displays something like “3 actions id progress…” and clicking on it would pop up a small window (with no window deco, like the URL in a web browser) with all the actions listed and showing their status and cancel buttons?
This is the mockup I was talking about btw: https://bugzilla.gnome.org/attachment.cgi?id=74331
The error bar would stay “open” and collect further errors until the errors are dismissed (by pressing the trash symbol or something like that) or the users clicks the “more…” button, which would open the log viewer.
The other bars just show the status of actions in progress, collecting various “send” and “receive” actions. This would assure that we would have a limited number of those bars pop up at a time.
This is the mockup I was talking about btw:
https://bugzilla.gnome.org/attachment.cgi?id=74331
The error bar would stay “open” and collect further errors until the errors are dismissed (by pressing the trash symbol or something like that) or the users clicks the “more…” button, which would open the log viewer.
The other bars just show the status of actions in progress, collecting various “send” and “receive” actions. This would assure that we would have a limited number of those bars pop up at a time.
Michael, I have seen these mocks before. I wanted to take few of those ideas. But really, I was afraid of the space they occupy. Also lots of tasks don’t give the granularity required to show there. But I liked it really.
I’m still work on it and I’m thinking of making the status bar persistent (just a thought). Im also thinking of having a visual indication that there were few errors that you didn’t notice with a button to open the log. Still under design.