I did a review of Evolution error dialogs both EError and some GtkDialogs and decided the attached dialogs are really intrusive.
The criteria I applied is:
- Errors that occur with out user Intervention
Dialogs that wont leave the user though he wants to get away
- Error that can be presented with out an dialog (Inline errors)
It is possible I've missed few dialogs and I wanted the team to add more errors, if they feel are really intrusive and can be presented in a different way.
New Error reporting would be the effect of a better task manager in Evolution, where Every user action is presented with a status message with a 'x' button to CANCEL it. In case of a error we should have the '!' and the status yellow/red depending on the result. When the user clicks on the status message, we get to the error or ignore on clicking 'X'. The user can right click on the taskbar and say cancel all or hide all errors etc. Of course, if the operations are not cancelable, they can't be canceled here. It should be a bug with that operation.
All the errors would remain in the status bar for a defined time and after that, it would be logged to a debug file and the error would be removed off. The time would be configurable.
It will look like
The '!' warning is a tool button, on click of that you would get the error if you want to see.
- Connection Timed out
- Ping Failed
- Multiple Password popup on Cancel (First Password popup should be OK, IMO)
- Error while performing operation.
RCPT TO <email@example.com> failed: Requested action not taken: mailbox unavailable
- async-error and async-error-no-describe [Errors on camel operations that are async]
(wild card errors with description filled in with text from camel exceptions)
Unable to connect to the GroupWise server. (? this happens on wrong passwd/server down during a/c creation)
- Could not save to autosave file
- Addressbook errors/multiple passwords on New Mail/calendar/memo/task
- Try to auto-save on quit-and-recover/open on start instead of popping a dialog to save/cancel.
- backend-died: The Evolution addressbook has quit unexpectedly.
- compose: Accessing LDAP Server anonymously after pressing cancel in the LDAP password prompt.
Error on webcal://foo Cannot Resolve Proxy host name
- The Evolution memo/tasks/calendar is unavailable until evolution is restarted
- Error loading calendar/tasks/memo (The calendar/tasks/memo is not marked for offline usage.)
- Error Popup on Evolution, if you start alarm notify or click the clock applet.
- Create event: Accessing LDAP Server anonymously after pressing cancel in the LDAP password prompt.
- Could not read out-of-office state (Should be displayed inline)
- Connection lost to Exchange Storage Process
Evolution should have a logging framework, where all the debug messages are logged. There should be a console view to the log as well.
Logging would be component specific. (May be Help->Debug) When the log viewer is clicked, it brings up the logs for the current process / instance. It would have a level of what should be logged. All the debug messages also would be logged there if specified.
g_log_*handler would be used to catch log message and would be stored in the log. So that any thing like g_debug would be caught. The log domain would be again component specific.
The log may look like
The UI to show all this, I'm still working on it.