home *** CD-ROM | disk | FTP | other *** search
Wrap
# Source Generated with Decompyle++ # File: in.pyc (Python 2.4) import sys import gtk import pango from gettext import gettext as _ from cStringIO import * import traceback import tempfile import os def fallback_gtk_exception(type, value, tb): dialog = gtk.MessageDialog(parent = None, flags = 0, type = gtk.MESSAGE_WARNING, buttons = gtk.BUTTONS_CLOSE, message_format = _('A programming error has been detected')) dialog.format_secondary_text(_("It probably isn't fatal, but should be reported to the developers nonetheless. The program may behave erratically from now on.")) dialog.set_title(_('Bug Detected')) dialog.set_default_response(gtk.RESPONSE_CLOSE) textview = gtk.TextView() textview.show() textview.set_editable(False) textview.modify_font(pango.FontDescription('Monospace')) sw = gtk.ScrolledWindow() sw.show() sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) sw.add(textview) frame = gtk.Frame() frame.set_shadow_type(gtk.SHADOW_IN) frame.add(sw) frame.set_border_width(6) textbuffer = textview.get_buffer() trace = StringIO() traceback.print_exception(type, value, tb, None, trace) textbuffer.set_text(trace.getvalue()) textview.set_size_request(gtk.gdk.screen_width() / 2, gtk.gdk.screen_height() / 3) frame.show() expander = gtk.Expander('Details') expander.add(frame) expander.show() dialog.vbox.add(expander) dialog.set_position(gtk.WIN_POS_CENTER) dialog.set_gravity(gtk.gdk.GRAVITY_CENTER) dialog.run() dialog.destroy() def bug_buddy_exception(type, value, tb): msg = ''.join(traceback.format_exception(type, value, tb)) (fd, name) = tempfile.mkstemp() try: os.write(fd, msg) os.system('bug-buddy --include="%s" --appname="%s"' % (name, 'deskbar-applet')) finally: os.unlink(name) _exception_in_progress = 0 def _info(type, value, tb): global _exception_in_progress, _exception_in_progress if _exception_in_progress: _excepthook_save(type, value, tb) return None _exception_in_progress = 1 bug_buddy_exception(type, value, tb) fallback_gtk_exception(type, value, tb) _exception_in_progress = 0 if not sys.stderr.isatty(): print 'Using GTK exception handler' _excepthook_save = sys.excepthook sys.excepthook = _info if __name__ == '__main__': _excepthook_save = sys.excepthook sys.excepthook = _info raise Exception