Handle all thrown exceptions and show them to the user
@jeff
Submitted by Jeff F.T. Description
Often Pitivi silently borks up and goes into an inconsistent state because of some traceback happening in the background... which you won't notice unless you're always running pitivi
in a terminal.
Perhaps we could simply reuse Getting Things GNOME's http://bazaar.launchpad.net/~gtg/gtg/trunk/view/head:/GTG/gtk/crashhandler.py
It seems to be stupidly simple to use. In /GTG/gtg.py
, here's how they call it:
from GTG.gtk.crashhandler import signal_catcher
with signal_catcher(manager.close_browser):
manager.main(once_thru=options.boot_test, uri_list = args)
(their manager.main thing is how they start the main loop of their application)
The result is that when a traceback occurs, it shows up in a pretty window with an expander... though we used to have a somewhat similar feature in Pitivi for GStreamer errors (the InfoStub widget in ui/timeline.py)
Note that the GTG guys have added an option to disable the crash handler/signal catcher, probably because it was more useful to users than to developers.
Imported from https://bugzilla.gnome.org/show_bug.cgi?id=657392