[PATCH 3/6] Port to Gtk3 and the new design
Vratislav Podzimek
vpodzime at redhat.com
Wed Jul 11 11:59:44 UTC 2012
---
meh/__init__.py | 3 +-
meh/handler.py | 5 +-
meh/ui/gui.py | 119 +++++++++------------
meh/ui/text.py | 2 +-
po/python-meh.pot | 59 ++++++++----
setup.py | 2 +-
ui/detailed-dialog.glade | 171 -------------------------------
ui/exception-dialog.glade | 248 +++++++++++++++++++++++++++++++++++++++++++++
8 files changed, 346 insertions(+), 263 deletions(-)
delete mode 100644 ui/detailed-dialog.glade
create mode 100644 ui/exception-dialog.glade
diff --git a/meh/__init__.py b/meh/__init__.py
index 2732e66..69352f8 100644
--- a/meh/__init__.py
+++ b/meh/__init__.py
@@ -25,7 +25,8 @@
# exception is hit.
MAIN_RESPONSE_DEBUG = 0
MAIN_RESPONSE_SAVE = 1
-MAIN_RESPONSE_OK = 2
+MAIN_RESPONSE_QUIT = 2
+MAIN_RESPONSE_NONE = 3
# And these constants represent the return values of buttons on the exception
# saving dialog.
diff --git a/meh/handler.py b/meh/handler.py
index 143c1b9..75dca12 100644
--- a/meh/handler.py
+++ b/meh/handler.py
@@ -80,7 +80,7 @@ class ExceptionHandler(object):
a subclass.
"""
- responseHash = {MAIN_RESPONSE_OK: self.runQuit,
+ responseHash = {MAIN_RESPONSE_QUIT: self.runQuit,
MAIN_RESPONSE_DEBUG: self.runDebug,
MAIN_RESPONSE_SAVE: self.runSave}
@@ -107,8 +107,7 @@ class ExceptionHandler(object):
if not win:
self.runQuit((ty, value, tb))
- win.run()
- rc = win.getrc()
+ rc = win.run()
try:
responseHash[rc]((ty, value, tb))
diff --git a/meh/ui/gui.py b/meh/ui/gui.py
index ec05739..2b6ff15 100644
--- a/meh/ui/gui.py
+++ b/meh/ui/gui.py
@@ -18,15 +18,14 @@
#
from meh import *
from meh.ui import *
-import gtk
-import gtk.glade
import os
import report
+from gi.repository import Gtk
import gettext
_ = lambda x: gettext.ldgettext("python-meh", x)
-def findGladeFile(file):
+def find_glade_file(file):
path = os.environ.get("GLADEPATH", "./:ui/:/tmp/updates/:/tmp/updates/ui/:/usr/share/python-meh/")
for d in path.split(":"):
fn = d + file
@@ -34,14 +33,6 @@ def findGladeFile(file):
return fn
raise RuntimeError, "Unable to find glade file %s" % file
-def findPixmap(file):
- path = os.environ.get("PIXMAPPATH", "./:pixmaps/:/tmp/updates/:/tmp/updates/pixmaps/:/usr/share/python-meh/")
- for d in path.split(":"):
- fn = d + file
- if os.access(fn, os.R_OK):
- return fn
- return None
-
class GraphicalIntf(AbstractIntf):
def __init__(self, *args, **kwargs):
AbstractIntf.__init__(self, *args, **kwargs)
@@ -83,74 +74,66 @@ class MainExceptionWindow(AbstractMainExceptionWindow):
AbstractMainExceptionWindow.__init__(self, shortTraceback, longTracebackFile,
*args, **kwargs)
- xml = gtk.glade.XML(findGladeFile("detailed-dialog.glade"), domain="python-meh")
- self.dialog = xml.get_widget("detailedDialog")
- self.mainVBox = xml.get_widget("mainVBox")
- self.hbox = xml.get_widget("hbox1")
- self.info = xml.get_widget("info")
- self.detailedExpander = xml.get_widget("detailedExpander")
- self.detailedView = xml.get_widget("detailedView")
-
- # Set the custom icon.
- img = gtk.Image()
- img.set_from_file(findPixmap("exception.png"))
- self.hbox.pack_start(img)
- self.hbox.reorder_child(img, 0)
-
- # Set the buttons.
- for (button, response) in [(_("Debu_g"), MAIN_RESPONSE_DEBUG),
- ("gtk-save", MAIN_RESPONSE_SAVE),
- (_("_Exit"), MAIN_RESPONSE_OK)]:
- self.dialog.add_button(button, response)
-
- self.dialog.set_default_response(MAIN_RESPONSE_OK)
-
- self.info.set_text(_("An unhandled exception has occurred. This "
- "is most likely a bug. Please save a copy "
- "of the detailed exception and file a bug "
- "report."))
-
- if longTracebackFile:
- f = open(longTracebackFile)
-
- textbuf = gtk.TextBuffer()
- i = textbuf.get_start_iter()
+ builder = Gtk.Builder()
+ glade_file = find_glade_file("exception-dialog.glade")
+ builder.add_from_file(glade_file)
+ builder.connect_signals(self)
- while True:
- # Wish readline would give StopIteration at the end of a file.
- line = f.readline()
- if line == "":
- break
+ self._main_window = builder.get_object("exceptionWindow")
- if __builtins__.get("type")(line) != unicode:
- try:
- line = unicode(line, encoding='utf-8')
- except UnicodeDecodeError:
- pass
+ self._traceback_buffer = builder.get_object("tracebackBuffer")
- textbuf.insert(i, line)
+ if longTracebackFile:
+ with open(longTracebackFile) as fobj:
+ long_traceback = ""
+ for line in fobj:
+ long_traceback += line
- f.close()
- self.detailedView.set_buffer(textbuf)
- else:
- self.mainVBox.remove(self.detailedExpander)
+ self._traceback_buffer.set_text(long_traceback)
+ self._response = MAIN_RESPONSE_QUIT
def destroy(self, *args, **kwargs):
- self.dialog.destroy()
+ self._main_window.destroy()
def run(self, *args, **kwargs):
- self.dialog.show_all()
- self.rc = self.dialog.run()
- self.dialog.destroy()
+ self._main_window.show_all()
+ Gtk.main()
+ self.destroy()
+ return self._response
+
+ def on_report_clicked(self, button):
+ self._response = MAIN_RESPONSE_SAVE
+ Gtk.main_quit()
+
+ def on_quit_clicked(self, button):
+ self._response = MAIN_RESPONSE_QUIT
+ Gtk.main_quit()
+
+ def on_debug_clicked(self, button):
+ self._response = MAIN_RESPONSE_DEBUG
+ Gtk.main_quit()
+
+ def on_expander_activated(self, expander, *args):
+ if expander.get_expanded():
+ self._main_window.resize(600, 400)
+ else:
+ #resize the window back to the default size when expander is
+ #minimized
+ self._main_window.resize(1, 1)
+
+ def on_main_window_deleted(self, *args):
+ self._response = MAIN_RESPONSE_NONE
+ self.destroy()
+ Gtk.main_quit()
class MessageWindow(AbstractMessageWindow):
def __init__(self, title, text, *args, **kwargs):
AbstractMessageWindow.__init__(self, title, text, *args, **kwargs)
- self.dialog = gtk.MessageDialog(buttons=gtk.BUTTONS_OK,
- type=gtk.MESSAGE_INFO,
+ self.dialog = Gtk.MessageDialog(buttons=Gtk.ButtonsType.OK,
+ type=Gtk.MessageType.INFO,
message_format=text)
self.dialog.set_title(title)
- self.dialog.set_position(gtk.WIN_POS_CENTER)
+ self.dialog.set_position(Gtk.WindowPosition.CENTER)
def destroy(self, *args, **kwargs):
self.dialog.destroy()
@@ -162,9 +145,9 @@ class MessageWindow(AbstractMessageWindow):
class ExitWindow(MessageWindow):
def __init__(self, title, text, *args, **kwargs):
- self.dialog = gtk.MessageDialog(buttons=gtk.BUTTONS_NONE,
- type=gtk.MESSAGE_INFO,
+ self.dialog = Gtk.MessageDialog(buttons=Gtk.ButtonsType.NONE,
+ type=Gtk.MessageType.INFO,
message_format=text)
self.dialog.set_title(title)
self.dialog.add_button(_("_Exit"), 0)
- self.dialog.set_position(gtk.WIN_POS_CENTER)
+ self.dialog.set_position(Gtk.WindowPosition.CENTER)
diff --git a/meh/ui/text.py b/meh/ui/text.py
index 5dd6fe1..717212e 100644
--- a/meh/ui/text.py
+++ b/meh/ui/text.py
@@ -85,7 +85,7 @@ class MainExceptionWindow(AbstractMainExceptionWindow):
elif response == string.lower(_("Save")):
return MAIN_RESPONSE_SAVE
else:
- return MAIN_RESPONSE_OK
+ return MAIN_RESPONSE_QUIT
class MessageWindow(AbstractMessageWindow):
def __init__(self, title, text, *args, **kwargs):
diff --git a/po/python-meh.pot b/po/python-meh.pot
index b291941..ab22b61 100644
--- a/po/python-meh.pot
+++ b/po/python-meh.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-14 10:26+0200\n"
+"POT-Creation-Date: 2012-07-09 14:33+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
@@ -17,45 +17,68 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../meh/ui/text.py:73 ../meh/ui/text.py:100
+#: ../meh/ui/text.py:73 ../meh/ui/text.py:99
msgid "OK"
msgstr ""
-#: ../meh/ui/text.py:73 ../meh/ui/text.py:82
+#: ../meh/ui/text.py:73 ../meh/ui/text.py:85
msgid "Save"
msgstr ""
-#: ../meh/ui/text.py:73 ../meh/ui/text.py:80
+#: ../meh/ui/text.py:73 ../meh/ui/text.py:83
msgid "Debug"
msgstr ""
-#: ../meh/ui/text.py:88
+#: ../meh/ui/text.py:80
msgid "Exception Occurred"
msgstr ""
-#: ../meh/ui/text.py:114
+#: ../meh/ui/text.py:113
msgid "Exit"
msgstr ""
-#. Set the buttons.
-#: ../meh/ui/gui.py:101
-msgid "Debu_g"
+#: ../meh/ui/gui.py:150
+msgid "_Exit"
msgstr ""
-#: ../meh/ui/gui.py:103 ../meh/ui/gui.py:169
-msgid "_Exit"
+#: tmp/exception-dialog.glade.h:1 tmp/exception-dialog-new.glade.h:1
+msgid "'Debug' will take you to tty1. Press Ctrl + Alt + F6 to return."
+msgstr ""
+
+#: tmp/exception-dialog.glade.h:2 tmp/exception-dialog-new.glade.h:2
+msgid "An unknown error has occured"
+msgstr ""
+
+#: tmp/exception-dialog.glade.h:3
+msgid "More _info..."
+msgstr ""
+
+#: tmp/exception-dialog.glade.h:4 tmp/exception-dialog-new.glade.h:4
+msgid "No additional info available."
+msgstr ""
+
+#: tmp/exception-dialog.glade.h:5 tmp/exception-dialog-new.glade.h:5
+msgid "The output below may help determine the cause of the error:"
msgstr ""
-#: ../meh/ui/gui.py:108
+#: tmp/exception-dialog.glade.h:6 tmp/exception-dialog-new.glade.h:6
msgid ""
-"An unhandled exception has occurred. This is most likely a bug. Please "
-"save a copy of the detailed exception and file a bug report."
+"This program has encountered an unknown error. You may\n"
+"report the bug bellow or quit the program."
+msgstr ""
+
+#: tmp/exception-dialog.glade.h:8 tmp/exception-dialog-new.glade.h:8
+msgid "_Debug"
+msgstr ""
+
+#: tmp/exception-dialog.glade.h:9 tmp/exception-dialog-new.glade.h:9
+msgid "_Quit"
msgstr ""
-#: tmp/detailed-dialog.glade.h:1
-msgid "Info"
+#: tmp/exception-dialog.glade.h:10 tmp/exception-dialog-new.glade.h:10
+msgid "_Report Bug"
msgstr ""
-#: tmp/detailed-dialog.glade.h:2
-msgid "_Details"
+#: tmp/exception-dialog-new.glade.h:3
+msgid "More info..."
msgstr ""
diff --git a/setup.py b/setup.py
index ab48424..5d5628f 100644
--- a/setup.py
+++ b/setup.py
@@ -6,5 +6,5 @@ setup(name='python-meh', version='0.13',
description='Python module for handling exceptions',
author='Chris Lumens', author_email='clumens at redhat.com',
url='http://git.fedoraproject.org/git/?p=python-meh.git',
- data_files = [('/usr/share/python-meh', ['ui/detailed-dialog.glade', 'pixmaps/exception.png'])],
+ data_files = [('/usr/share/python-meh', ['ui/exception-dialog.glade'])],
packages=['meh', 'meh.ui'])
diff --git a/ui/detailed-dialog.glade b/ui/detailed-dialog.glade
deleted file mode 100644
index 61fca36..0000000
--- a/ui/detailed-dialog.glade
+++ /dev/null
@@ -1,171 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkDialog" id="detailedDialog">
- <property name="visible">True</property>
- <property name="title">Exception Occurred</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER</property>
- <property name="modal">True</property>
- <property name="default_width">550</property>
- <property name="default_height">400</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="focus_on_map">True</property>
- <property name="urgency_hint">False</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="detailedDialog-vbox">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="buttonBox">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="mainVBox">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkHBox" id="hbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <placeholder/>
- </child>
-
- <child>
- <widget class="GtkLabel" id="info">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Info</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkExpander" id="detailedExpander">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="expanded">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTextView" id="detailedView">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">False</property>
- <property name="overwrite">False</property>
- <property name="accepts_tab">True</property>
- <property name="justification">GTK_JUSTIFY_LEFT</property>
- <property name="wrap_mode">GTK_WRAP_NONE</property>
- <property name="cursor_visible">False</property>
- <property name="pixels_above_lines">0</property>
- <property name="pixels_below_lines">0</property>
- <property name="pixels_inside_wrap">0</property>
- <property name="left_margin">0</property>
- <property name="right_margin">0</property>
- <property name="indent">0</property>
- <property name="text" translatable="yes"></property>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Details</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/ui/exception-dialog.glade b/ui/exception-dialog.glade
new file mode 100644
index 0000000..89b62c2
--- /dev/null
+++ b/ui/exception-dialog.glade
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkWindow" id="exceptionWindow">
+ <property name="can_focus">False</property>
+ <property name="window_position">center</property>
+ <signal name="delete-event" handler="on_main_window_deleted" swapped="no"/>
+ <child>
+ <object class="GtkBox" id="mainBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="box1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="margin_left">20</property>
+ <property name="margin_top">30</property>
+ <child>
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-dialog-warning</property>
+ <property name="icon-size">5</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">7</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="titleLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">An unknown error has occured</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ <attribute name="scale" value="1.1000000000000001"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="explainLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
+ <property name="margin_left">40</property>
+ <property name="margin_right">40</property>
+ <property name="label" translatable="yes">This program has encountered an unknown error. You may
+report the bug bellow or quit the program.</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">21</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButtonBox" id="buttonbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="margin_right">20</property>
+ <property name="spacing">10</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="reportButton">
+ <property name="label" translatable="yes">_Report Bug</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked" handler="on_report_clicked" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="quitButton">
+ <property name="label" translatable="yes">_Quit</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked" handler="on_quit_clicked" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkExpander" id="expander">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="margin_left">10</property>
+ <property name="margin_right">10</property>
+ <property name="margin_bottom">10</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="on_expander_activated" swapped="no"/>
+ <child>
+ <object class="GtkBox" id="box2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="commentLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="margin_left">2</property>
+ <property name="xalign">0.10000000149011612</property>
+ <property name="label" translatable="yes">The output below may help determine the cause of the error:</property>
+ <attributes>
+ <attribute name="style" value="italic"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="tracebackScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTextView" id="tracebackView">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="vscroll_policy">natural</property>
+ <property name="editable">False</property>
+ <property name="cursor_visible">False</property>
+ <property name="buffer">tracebackBuffer</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="bottomBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkLabel" id="warningLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0.89999997615814209</property>
+ <property name="label" translatable="yes">'Debug' will take you to tty1. Press Ctrl + Alt + F6 to return.</property>
+ <attributes>
+ <attribute name="style" value="italic"/>
+ <attribute name="scale" value="0.80000000000000004"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="debugButton">
+ <property name="label" translatable="yes">_Debug</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked" handler="on_debug_clicked" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="expanderLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">More _info...</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <object class="GtkTextBuffer" id="tracebackBuffer">
+ <property name="text" translatable="yes">No additional info available.</property>
+ </object>
+</interface>
--
1.7.4.4
More information about the anaconda-patches
mailing list