Traceback / crash handler: catch rendering and playback exceptions, bring back the InfoStub, etc.
Submitted by Jeff F.T.
Assigned to Jeff F.T.
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