[PATCH 3/6] Port to Gtk3 and the new design
Martin Gracik
mgracik at redhat.com
Wed Jul 11 12:18:57 UTC 2012
the whole set looks fine to me, I just have one comment below
----- Original Message -----
> ---
> 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
you could use
long_traceback = ''.join(fobj)
>
> - 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
>
> _______________________________________________
> anaconda-patches mailing list
> anaconda-patches at lists.fedorahosted.org
> https://fedorahosted.org/mailman/listinfo/anaconda-patches
>
More information about the anaconda-patches
mailing list