src/modules/gui/globalexceptionhandler.py
branch2010.2H
changeset 2578 630e1ffc7a19
parent 2572 20cf41d565de
equal deleted inserted replaced
2577:39f5f53c01cb 2578:630e1ffc7a19
    17 # fields enclosed by brackets "[]" replaced with your own identifying
    17 # fields enclosed by brackets "[]" replaced with your own identifying
    18 # information: Portions Copyright [yyyy] [name of copyright owner]
    18 # information: Portions Copyright [yyyy] [name of copyright owner]
    19 #
    19 #
    20 # CDDL HEADER END
    20 # CDDL HEADER END
    21 #
    21 #
    22 # Copyright (c) 2010, Oracle and/or its affiliates.  All rights reserved.
    22 # Copyright (c) 2010, 2011, Oracle and/or its affiliates.  All rights reserved.
    23 #
    23 #
    24 
    24 
    25 import sys
    25 import sys
    26 import threading
    26 import threading
    27 import traceback
    27 import traceback
   109                 dmsg = _("An unknown error occurred")
   109                 dmsg = _("An unknown error occurred")
   110                 md = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, message_format=dmsg)
   110                 md = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, message_format=dmsg)
   111                 close_btn = md.add_button(gtk.STOCK_CLOSE, 100)
   111                 close_btn = md.add_button(gtk.STOCK_CLOSE, 100)
   112                 md.set_default_response(100)
   112                 md.set_default_response(100)
   113 
   113 
   114                 dmsg = _("Please let the developers know about this problem by "
   114                 dmsg = misc.get_traceback_message()
   115                     "filing a bug together with the error details listed below at:")
   115                 # We remove all \n except the initial one.
       
   116                 dmsg = "\n" + dmsg.replace("\n", " ").lstrip()
   116                 md.format_secondary_text(dmsg)
   117                 md.format_secondary_text(dmsg)
   117                 md.set_title(_('Unexpected Error'))
   118                 md.set_title(_('Unexpected Error'))
   118 
       
   119                 uri_btn = gtk.LinkButton(misc.BUG_URI_GUI,
       
   120                     "defect.opensolaris.org")
       
   121                 uri_btn.set_relief(gtk.RELIEF_NONE)
       
   122                 uri_btn.set_size_request(160, -1)
       
   123                 align = gtk.Alignment(0, 0, 0, 0)
       
   124                 align.set_padding(0, 0, 56, 0)
       
   125                 align.add(uri_btn)
       
   126 
   119 
   127                 textview = gtk.TextView()
   120                 textview = gtk.TextView()
   128                 textview.show()
   121                 textview.show()
   129                 textview.set_editable(False)
   122                 textview.set_editable(False)
   130                 textview.set_wrap_mode(gtk.WRAP_WORD)
   123                 textview.set_wrap_mode(gtk.WRAP_WORD)
   134                 sw.add(textview)
   127                 sw.add(textview)
   135                 fr = gtk.Frame()
   128                 fr = gtk.Frame()
   136                 fr.set_shadow_type(gtk.SHADOW_IN)
   129                 fr.set_shadow_type(gtk.SHADOW_IN)
   137                 fr.add(sw)
   130                 fr.add(sw)
   138                 ca = md.get_content_area()
   131                 ca = md.get_content_area()
   139                 ca.pack_start(align, False, False, 0)
       
   140                 ca.pack_start(fr)
   132                 ca.pack_start(fr)
   141 
   133 
   142                 textbuffer = textview.get_buffer()
   134                 textbuffer = textview.get_buffer()
   143                 textbuffer.create_tag("bold", weight=pango.WEIGHT_BOLD)
   135                 textbuffer.create_tag("bold", weight=pango.WEIGHT_BOLD)
   144                 textbuffer.create_tag("level1", left_margin=30, right_margin=10)
   136                 textbuffer.create_tag("level1", left_margin=30, right_margin=10)
   160                 if publisher_str == "":
   152                 if publisher_str == "":
   161                         textbuffer.insert_with_tags_by_name(textiter,
   153                         textbuffer.insert_with_tags_by_name(textiter,
   162                             _("\nPlease include output from:\n"), "bold")
   154                             _("\nPlease include output from:\n"), "bold")
   163                         textbuffer.insert(textiter, "$ pkg publisher\n")
   155                         textbuffer.insert(textiter, "$ pkg publisher\n")
   164 
   156 
   165                 ver = gui_misc.get_version()
       
   166                 textbuffer.insert_with_tags_by_name(textiter,
       
   167                     _("\npkg version:\n"), "bold")
       
   168                 textbuffer.insert_with_tags_by_name(textiter, ver + "\n", "level1")
       
   169                 md.set_size_request(550, 400)
   157                 md.set_size_request(550, 400)
   170                 md.set_resizable(True)
   158                 md.set_resizable(True)
   171                 close_btn.grab_focus()
   159                 close_btn.grab_focus()
   172                 md.show_all()
   160                 md.show_all()
   173                 md.run()
   161                 md.run()